Puedes probar a utilizar una variable que usas como contador para el "For" en vez de utilizar "For Each"
Código CODE:
Ver originalDim x as byte
Dim columna as DataGridViewColum in DataGridView1.Colums
For x = 0 to columna.count - 1
MessageBox.show(columna(x).Name.ToString)
next
Creo que asi te deberia funcionar... pruebalo y nos cuentas!