how to create UIList with auto-aligned three columns?
By default when you place multiple items on the same row blender will give each item an equal portion of the row eg. three items get 33% of the row each. Due to the fluid nature of blender's layout, we can't specify an exact size of each column, they will get resized as the user resizes the layout.

You can use UILayout.split() to alter the percentage of a row that an item uses. To expand on my earlier answer to include an example of splitting three columns you can get the following result.



Note that the split works on the allocated space, the first split turns a row into two columns, the first column gets the percentage size of 60%, the remaining items then use the remaining 40%. I have then used split again so that the second column gets 30% of the available space - that is 30% of the remaining width after the first split not the entire row.

def draw(self, context):
    measure_size = 0.6
    unit_size = 0.3
    box = self.layout.box()
    col = box.column()

    row = col.split(percentage=measure_size)
    row.label(text='9.3000168000e+03')
    row = row.split(percentage=unit_size)
    row.label(text='in')
    row.label(text='Cube')

    row = col.split(percentage=measure_size)
    row.label(text='7.176e+00')
    row = row.split(percentage=unit_size)
    row.label(text='yd')
    row.label(text='Cube')