Hola jgarcigo,
Para solucionar tu primer problema (que al seleccionar un código cambie automáticamente la descripción), podrías utilizar algo así (fíjate que tambien modifiqué el código de la tabla):
Código HTML:
<SCRIPT LANGUAJE="JavaScript">
function seleccionar(form) {
if(form.select.options[0].selected == true) {
form.select2.options[0].selected = true;
}
if(form.select.options[1].selected == true) {
form.select2.options[1].selected = true;
}
if(form.select.options[2].selected == true) {
form.select2.options[2].selected = true;
}
if(form.select.options[3].selected == true) {
form.select2.options[3].selected = true;
}
}
</SCRIPT>
<form name=formulario>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="10%">Código</td>
<td width="10%">Cantidad</td>
<td width="40%">Descripción</td>
<td width="15%">Precio Unitario</td>
<td width="15%">Valor Neto</td>
</tr>
<tr>
<td><select name="select" onChange="seleccionar(this.form)">
<option value="CODIGO" selected>CODIGO</option>
<option value="001">001</option>
<option value="002">002</option>
<option value="003">003</option>
</select></td>
<td><input name="textfield11" type="text" size="5"></td>
<td><select name="select2">
<option value="DESCRIPCION" selected>DESCRIPCION</option>
<option value="AAA">AAA</option>
<option value="BB">BBB</option>
<option value="CCC">CCC</option>
</select></td>
<td><input name="textfield12" type="text" size="10"></td>
<td><input name="textfield13" type="text" size="10"></td>
</tr>
</table>
</form>
Ahora, para agregar una nueva fila para una nueva selección de productos, tienes varias opciones, tanto en JS como en PHP.
Si lo tuviese que resolver yo, lo haría directamente con PHP ¿Cómo?
1) Enviando el formulario y guardando los campos dentro de sesiones, cookies o directamente una base de datos o en un archivo temporal.
Todo depende de lo que pretendas hacer y de lo que estés utilizando actualmente.
2) Preguntar previamente al usuario cuantos artículos desea comprar y en base a eso, crear un bucle dentro del formulario.
3) Directamente hacer un simulacro de cesta de compras y cada vez que el usuario pinche sobre un botón "agregar" envíes esos datos y realices alguna de las opciones que te comenté en el primer punto.
Con JavaScript es más complejo y bastante "engañoso" ¿Por qué? porque cada fila deberá estar ya escrita y solamente la ocultarás y la mostrarás cuando el usuario lo solicite. Además, deberás crear un script más largo.
Para mi la mejor opción es PHP.
Un Saludo!