Eccoti un codice semplice per capire come creare una DataGridView partendo da un array di cui non conosci le dimensioni.
Il codice non è ottimizzato, ma ho cercato di renderlo semplice in modo che tu ti possa studiarlo e capirlo.
' --------------------------------------------------
Dim cella(5, 4) As Integer ' creo l'array X,Y
' popolo l'array "cella" con dei numeri
For y = 0 To 4
For x = 0 To 5
cella(x, y) = (y * 6 + x) + 1
Next
Next
' --------------------------------------------------
' creo le colonne in base alla dimensione X dell'array
For x = 0 To cella.GetUpperBound(0)
DataGridView1.Columns.Add("Col" & x.ToString, "Col " & x.ToString)
Next
' ora popolo la DataGridView non sapendo la dimensione dell'array "cella"
For y = 0 To cella.GetUpperBound(1)
Dim lista = New List(Of Object)
For x = 0 To cella.GetUpperBound(0)
lista.Add(cella(x, y))
Next
DataGridView1.Rows.Add(lista.ToArray)
Next
La prima parte è la creazione dell'array cella e il suo popolamento, l'ho fatto per poter aver dei dati su cui provare, poi ovviamente a te non serve.
P.s.: con cella.GetUpperBound(0) mi ricavo la dimensione di cella(X), con cella.GetUpperBound(1) la dimensione di cella(Y)