Scusa ma partendo dal basso non risolve il problema.
Oppure mi sfugge qualcosa.
Per me ti conviene fare così:
Per caricate il tuo DataTable dal Grid, fai così:
prima crei il DataTable da zero:
Dim T as new DataTable
T.Columns.Add("Nome Colonna")
Aggiungi tante colonne quante te ne servono per ricreare la struttura del tuo Grid.
Poi per riempire il DataTable fai così:
For each Rg as DataGridViewRow in DataGridView.Rows
T.Rows.InsertAt(T.NewRow, T.Rows.Count)
For each Cg as DataGridViewColumn in DataGridView.Columns
T.Rows(T.Rows.Count-1).Item(Cg.Index)=Rg.Cells(Cg.Index).Value
Next
Next
Il gioco è fatto.