Можно так попробовать:
<script type="text/javascript">
window.onload = function(){
document.getElementById("element").onkeyup = function(){
var getText = this.value;
var getRegs = getText.match(/^.*(\r\n|\n|$)/gim);
var setText = false;
for(var i = 0; i < getRegs.length; i++){
getText = getRegs[i].replace(/\r|\n/g, "");
setText += getText.length ? Math.ceil(getText.length / 50) : 1;
}
this.rows = setText;
};
};
</script>
<textarea rows="10" cols="50" id="element" style="overflow: hidden; min-height: 200px"></textarea>