Mittels der Methode match() kannst du ermitteln, wieviel Zeilenumbrüche \n sich im Textarea befinden.
Du müsstest im Textarea den onkeypress-Event überwachen. Wird die Enter-Taste gedrückt, prüfst du, wieviele \n bereits vorhanden sind. Sind es 29, cancelst du den onkeypress-Event(such mal ein bischen im Board... es gibt eine Reihe von Themen, in denen es um das canceln von Tastatureingaben ging)
Das ganze geht natürlich nur mit tatsächlich per Tastatur erzeugten Zeilenumbrüchen, und betrifft nicht unbedingt die aktuell im Textfeld zu sehende Zeilenanzahl.