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)