I have tested your sample, works quite fine.
Even if I set exactly same parameters as in my sample
TableLayout='Fixed' Width="100%" and autogenerated columns= true
I just noticed that columns content overflow each other when size is smaller than words....
I don't understand what is happening on my side.
Each time I size a column by adding x it seems that all others get a factor 2 or 3 and resize by 2x or 3x ????
Some column are hidden in codebehind during ColumnCreated event ???? Others get their header changed ???
All values are set in ItemDatabound.
Could it be empty values in some columns ?
Some columns receive in place of string.empty, could this fool resizing ?
Some less accepted value data type ?
(sorry my text get red and there is no way to change color in this editor)
I will have to spend lot of time on this ....