There is a property on the Column object called ColumnOrder. If you change this property (at run-time) the column will move to that position.
From the help file: If a Grid contains five columns and you want the third column displayed last, set the ColumnOrder property of the third column to 5. The ColumnOrder setting for the fourth column becomes 3, the ColumnOrder setting for the fifth column becomes 4, and so on.