Il problema e` gia` stato affrontato qualche tempo fa. Prova quindi con una ricerca.

Potresti contare il numero di caratteri acapo (non so se ti va bene):
var results = str.match(/\n/gm);
alert("ci sono "+(results.length+1)+" righe");

Potresti poi aggiungere 1 per ogni pezzo la cui lunghezza supera la larghezza della textarea:
codice:
function contarighe(str) {
  var num = 0;
  if(str.length) num++;
  var separ = str.split(/\n/);
  if(separ.length) {
    num += separ.length-1;
    for(var i=0; i<separ.length; i++) {
      num += math.floor(separ[i]/max);
    }
  }
  return num;
}
Naturalmente max deve essere una variabile globale e contenere il numero dei caratteri max per riga. str e` la stringa da passare in cui contare le righe.