Hola, yo tambien soy bastante principiante, pero si no recuerdo mal habia una coleccion que era el ArrayList, con ella pudes guardar una serie de valores indefinida
Código:
Dim nombre As ArrayList
nombre.Add(elemento) //Para añadir
nombre.Remove(elemento) //Para borrar
nombre.Item(elemento) //Para leer
para lo de las cabeceras creo que tendra que ayudarte otra persona, porque no creo que sea la propiedad ColumnHeaders la que necesitas, pero bueno todo peude pasar
espero averte ayudado algo.