Hola Taursoft.
Una matriz viene a ser una variable que consta de cierto número de elementos con el mismo tipo de datos en orden secuencial. Cada elemento puede ser accedido mediante un índice. Adicionalmente una matriz puede tener varias dimensiones, de forma que contaremos con un índice distinto para acceder a los elementos de cada dimensión.
Para lo que pretendes hacer, podría convenir que el tipo de datos de la matriz fuese una estructura de datos creada por ti, en vez de utilizar varias dimensiones según el número de columnas que pretendes almacenar.
Puede ser que no conozcas el máximo número de elementos que quieres almacenar, por ello deberás dimensionar la matriz dinámicamente utilizando la palabra clave Preserve.
Puede ocurrirte que si deseas almacenar una gran cantidad de datos te quedes sin memoria al dimensionar la matriz. Para solventar esto, podrías utilizar un sistema de buffering, definiendo la matriz estática y almacenando en disco, en un archivo abierto como binary, los datos al llegar al límite superior de la matriz...
A lo mejor te parece un poco liado, pero te aseguro que es muy sencillo.
Suerte.