題のままですが、DataGridView.Columns("CulumName").DisplayIndexプロパティで列の順番を指定したにも関わらず、意図どおりになりませんでした。
いろいろ悩んだ結果、原因は単純でした。
DataGridView.AutoGenerateColumns プロパティ が true になっていたためです。
このプロパティを false にすれば DisplayIndex で指定した通りの順番で表示されました。
しかし、MSDNのDisplayIndexプロパティのヘルプにはそのことは一切書いてません。
しっかりしてくれ、MS