il resto lo fai tu... avevo sbattuto la testa contro l'aggiungere righe e celle alle tabelle qualche tempo fa... è la cosa è un po' artificiosa in IE, ti posto il codice di esempio a cui ero pervenuto.

codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="javascript" type="text/javascript">
<!--
  function addrows(r) {
  	oldHTML = document.getElementById('tabella').getElementsByTagName('tbody')[0].innerHTML;
	trs = document.getElementById('tabella').getElementsByTagName('tr').length;
	tds = document.getElementById('tabella').getElementsByTagName('tr')[0].getElementsByTagName('td').length;
	if (!document.all) {
	  newHTML = "";
	  for (var i = 0; i < r; i++) {
	    newHTML += "<tr>";
		for (var j = 0; j < tds; j++) {
		  newHTML +="\n <td>"+(1+trs+i)*(j+1)+"</td>";
		}
		newHTML += "</tr>\n";
		wholeHTML = oldHTML+newHTML;
		document.getElementById('tabella').getElementsByTagName('tbody')[0].innerHTML = wholeHTML;
	  }
	}
	else { //Era Internet Explorer
	  for (var i=0; i < r; i++) {
	  	var row;
	    row = document.getElementById('tabella').insertRow();
		for (var j=0; j < tds; j++) {
		  var td;
		  td = row.insertCell();
		  td.innerHTML = (1+trs+i)*(1+j);
		}
	  }
	}	
  }
-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Tabella</title>
</head>

<body>
<table id="tabella" style="width: 200px; border: 1px solid #000000;">
  <tr>
    <td>1</td>
	<td>2</td>
	<td>3</td>
  </tr>
  <tr>
    <td>2</td>
	<td>4</td>
	<td>6</td>
  </tr>
  <tr>
    <td>3</td>
	<td>6</td>
	<td>9</td>
  </tr>
</table>

Aggiungi righe:<input type="text" id="righe" value="Numero righe"><input type="button" value="Aggiungi righe" onClick="addrows(document.getElementById('righe').value);">
</body>
</html>
Putroppo fa a pugni almeno con Opera (su IE e FF va).