How do I use multiple columns in my add-on UI?
UILayout.column_flow

Perhaps the easiest way to have a 2 column layout  is using the column_flow layout,  set to 2 columns.

Replacement draw method for Text Editor &gt; Templates &gt; Python &gt; UI Panel Simple


11 add cube operator buttons by way of example

def draw(self, context):
    layout = self.layout
    cf = layout.column_flow(columns=2, align=False)
    for i in range(11):
        cf.operator("mesh.primitive_cube_add")


Changing to 3 columns.


cf = layout.column_flow(columns=3)


cf = layout.column_flow(columns=3, align=True)