Quello che ho finora è questo:

codice:
<html>

	<head>

<script language="javascript" type="text/javascript">

var campi = new Array("campo1", "campo2" ); 

function somma(ff) {
  alert("entrato nella funzione"); 
  var tot = 0;
  alert("ci sono "+campi.length+" campi da sommare");
  for(var i=0; i<campi.length; i++) {
    alert("sto per aggiungere il campo "+ff.elements[campi[i]].name);
    var c = ff.elements[campi[i]].value;
    alert("il suo value e` "+c);
    if(c=="") c="0";
    if(c=='NaN') {alert("Not A Number"); c=0;}
    tot += parseInt(c,10);
  }
  ff.totale.value = tot;
}

var num=1;

function accoda(){
	if(document.createElement && document.getElementById && document.getElementsByTagName) {
		// crea elementi
		var oTr=document.createElement("TR");
		var oTd1=document.createElement("TD");
		var oTd2=document.createElement("TD");
		var oTd3=document.createElement("TD");
		var oTd4=document.createElement("TD");
		var oField=document.createElement("INPUT");
		var oText=document.createTextNode(""+num);

		// setta attributi
  		oField.setAttribute("type","text");
		oField.setAttribute("name","testo"+num);
		oField.setAttribute("size","10");

		// appendi al relativo padre
		oTd1.appendChild(oField);
		oTd2.appendChild(oText);
		oTr.appendChild(oTd1);
		oTr.appendChild(oTd2);
		document.getElementById('tabella').getElementsByTagName('TBODY')[0].appendChild(oTr);

		// incrementa variabile globale
    		alert("prima: "+campi);
    		campi.push("testo"+num); 
    		alert("dopo "+campi);
		num++
	}
}

function rimuovi(){
	if(document.removeChild && document.getElementById && document.getElementsByTagName) {
		// se non e' la prima riga
		if(num>1){
			// riferimento al tbody
			var tb=document.getElementById('tabella').getElementsByTagName('TBODY')[0];
			// riferimento all' ultimo TR
			var lastTr=tb.getElementsByTagName('TR')[(tb.getElementsByTagName('TR').length)-1]

      			var fieldn = lastTr.getElementsByTagName('input')[0].name;
      			for(var i=0; i<campi.length; i++) {
        		   if(campi[i] == fieldn) campi.splice(i,1);
      			}

			// rimuovi
			tb.removeChild(lastTr);
			// decrementa variabile globale
			num--
		}
	}
}

</script>

	</head>


		<body>

		<form name="modulo">

			<table align="center">

			<tr>
			<td>Campo 1</td>
			<td><input name="Campo1" maxLength="10" size="10" onblur="somma(this.form)" /> </td>
			
			<td><input name="Commento 1)" type="button" value="*" onClick="show_hide(this);"> </td>
			<td><input name="Aggiungi" type="button" value="Aggiungi" onclick="accoda()"><input type="button" value="Rimuovi" onclick="rimuovi()"></td>
			</tr>	


			</table>

			<form name="modulo">

			<table align="center" id="tabella">
			<tbody>
			<tr>
			<td></td>

			</tr>
			</tbody>
			</table>			
			</form>

			<table align="center">

			<tr>
			<td>Campo 2</td>
			<td><input name="Campo2" maxLength="10" size="10"  onblur="somma(this.form)" /> </td>
			
			<td><input name="Commento 2)" type="button" value="*" onClick="show_hide(this);"> </td>
			<td><input name="Aggiungi" type="button" value="Aggiungi" onclick="accoda()"><input type="button" value="Rimuovi" onclick="rimuovi()"></td>
			</tr>


			<tr></tr>
			<tr></tr>
			<tr>
			<td>TOTALE</td>
			<td><input name="totale" type="text" maxLength="12" size="10" style="background:#FFFF00 ;" readonly></td>
			</tr>
			<tr></tr>

			</table>

		</body>

		</form>

</html>
non ho ancora un posto dove metterla in rete...