Aquí lo tienes, a ver si te sirve:
Código HTML:
<head>
<script type="text/javascript">
function escribe(nm)
{ // nm es el número máximo de filas que se creará
var tx = '<form>' +
'<select name="cuantos" onChange="muestra(this)">' +
'<option>elige</option>'
for (var i=1; i<=nm; i++)
{ tx += '<option>' + i + '</option>'
}
tx += '</select>'
for (var i=1; i<=nm; i++)
{ tx += '<div id="fila' + i + '" style="display:none;">' + i + '<input type="text"></div>'
}
tx += '</form>'
document.write(tx)
}
function muestra(ctl)
{ var num = ctl.selectedIndex
var i
ctl.selectedIndex=0
for (i=1; i<=num; i++)
{ document.getElementById("fila"+i).style.display="block"
}
for (i=num+1; i<ctl.options.length; i++)
{ document.getElementById("fila"+i).style.display="none"
}
}
</script>
</head>
<body>
<script type="text/javascript">
escribe(9)
</script>
</body>
Ten en cuenta que existen todos los controles (9 en el ejemplo, 44 en tu caso...), tan sólo están ocultos mediante CSS, por lo que conservan sus valores y si envías el formulario se enviarán todos; si no es eso lo que quieres, se podría jugar además con la propiedad "disabled".