Lo mas comun en estos casos es lo siguiente:
Utilizar un textrea oculto con una cadena que almacene los datos ke yan sido "guardados" delimitados por algun caracter de referencia, un pipe "|" x ejemplo para los renglones y un ";" x ejemplo para las columnas:
Ejemplo:
Nombre Edad EMail
ABC 25
[email protected]
DEF 26
[email protected]
ghi 22
[email protected]
La cadena kedaria así:
ABC;25;
[email protected]|DEF;26;
[email protected]|ghi;22;ghi@j kl.com
(aunke el textarea acepta saltos de linea, te recomiendo mas utlizar algun caracter de esos ke son muy poco empleados por el usuario, tambien habrá ke validar que el usuario no introduzca nunca ninguno de los caracteres delimitadores como parte de un dato en el formulario, en los faq's hay varios metodos de validacion, echales una mirada)
y con esto utlizas la funciones de javascript para convertir cadenas a arrays (split) y manejarlo como un vector bidimencional
Espero "haiga" sido claro y sobre todo ke te halla servido mi ayuda
Saludos