Hola txarly:
Tal vez esto pueda servirte:
<textarea id=texto cols=100 onkeyup="this.rows = this.value.split(/\n/).length + 1"></textarea>
Se trata de darle el tamaño cada vez que se pulsa una tecla...
Se le añade una línea más para que sobre, y porque cuando se pulsa "enter" el número de lineas que se genera en este ejemplo no varía, y provoca un scroll indeseado... aunque me imagino, que si lo vas a usar de acuerdo a lo que comentas en otro mensaje, no te será difícil adaptarlo a tus necesidades.
Espero que te sirva...
Saludos