It is difficult to know how to size columns in a table in program, especially when creating the table dynamically. The best you can do is guess based on the estimated size of what is going to be returned.
If you double-click the heading in between two columns it auto-sizes the left column. It would be useful if there was a function or attribute which could do this.
I don't know if you have noticed but that double-click only sizes based on the data that the GDC knows about i.e. the rows that are visible.
You can set the width attribute of the column by manipulating the DOM tree. I've done that successfully in a routine that essentially takes the output from a SQL statement and dumps it into a DISPLAY ARRAY. For each column set the width attribute to an appropriate value for the data in that column.