DataGridViewってC#2.0だったっけ?
よくわからんけど string としてソートされているのか。
ListViewでもやるように自分でソートを定義すればいいんじゃないの