certo, basta che aggiungi l'elemento all'interno della form e al submit viene inviato come un elemento normale (dal punto di vista del browser è un elemento normale).

Ti faccio un esempio con una table:

Codice HTML
codice:
<form action=".." method="post">
<table>
   <thead>
      <tr>
         <th>Nome</th>
         <th>Cognome</th>
         <th>Indirizzo</th>
         <th>Citt&agrave;</th>
         <th>Aggiungi Riga</th>
      </tr>
   </thead>
   <tbody id="MyContent">
      
   </tbody>
</table>
</form>



   Vuota tabella
</p>
Ho messo il thead ed il tbody perché potrei essere interessato a cancellare il contenuto della tabella, ma l'intestazione la devo tenere, compreso il link per aggiungere righe.

Codice JS
codice:
//Crea una riga le celle e gli input all'interno, e poi l'aggiunge al tbody
var addRowToTbody = function(){
   //Ottengo l'elemento tbody
   var tbody = document.getElementById("MyContent");
   //Creo un elemento tr
   var tr = document.createElement("tr");
   //l'aggiungo al tbody
   tbody.appendChild(tr);
  
   //Continuo con gli altri elementi
   var td = document.createElement('td');
   tr.appendChild(td);
   var inpt = document.createElement('input');
   td.appendChild(inpt);
   //Setto i dati dell'input
   inpt.type = "text";
   //Se sei pratico di PHP o ASP (credo lo supporti) non dovresti avere problemi a capire
   inpt.name = "name[]";

   //Gli altri campi	
   td = document.createElement('td');
   tr.appendChild(td);
   inpt = document.createElement('input');
   td.appendChild(inpt);
   inpt.type = "text";
   inpt.name = "lastname[]";

   td = document.createElement('td');
   tr.appendChild(td);
   inpt = document.createElement('input');
   td.appendChild(inpt);
   inpt.type = "text";
   inpt.name = "address[]";

   td = document.createElement('td');
   tr.appendChild(td);
   inpt = document.createElement('input');
   td.appendChild(inpt);
   inpt.type = "text";
   inpt.name = "city[]";

   td = document.createElement('td');
   tr.appendChild(td);
   var a = document.createElement('a');
   td.appendChild(a);
   a.href = '#';
   a.onclick = deleteRowFromTbody;
   a.appendChild(document.createTextNode('Cancella'));
}

//Cancella la riga corrispondente al link Cancella cliccato
var deleteRowFromTbody = function(){
   //Ottengo il tr dal link
   var tr = this.parentNode.parentNode;
   //Lo cancello
   tr.parentNode.removeChild(tr);
}

//Cancella il tbody creando un altro elemento tbody e sostituendolo
var emptyTbody = function(){
   var tbody = document.getElementById("MyContent");
   var newTbody = document.createElement("tbody");
   tbody.parentNode.replaceChild(newTbody, tbody);
   newTbody.id = "MyContent";
}

//Associo le funzioni ai link
window.onload = function(){
	document.getElementById("Adder").onclick = addRowToTbody;
	document.getElementById("Empty").onclick = emptyTbody;
}