Я предпочитаю TableColumnLayout или TreeColumnLayout.Хитрость заключается в том, чтобы установить его как макет родительского композита, а не как таблицу или само дерево.
Размер столбцов будет автоматически обновляться при изменении размера родительского контейнера.
TreeColumnLayout layout = new TreeColumnLayout();
client.setLayout(layout);
viewer = new CheckboxTreeViewer(client, SWT.V_SCROLL | SWT.H_SCROLL);
viewer.getTree().setLinesVisible(true);
TreeViewerColumn firstColumn = new TreeViewerColumn(viewer, SWT.NONE);
layout.setColumnData(firstColumn.getColumn(), new ColumnWeightData(100, 10, true));
TreeViewerColumn secondColumn = new TreeViewerColumn(resourcesViewer, SWT.NONE);
layout.setColumnData(secondColumn.getColumn(), new ColumnPixelData(20, false, true));