Well, you could figure out about how many characters fit on one row, divide the total length of $message (use [man]strlen/man to find this) by that number, round up (use [man]ceil/man to automatically round it up), and that's how many rows you need.
EDIT: Also, I believe the default value for a textarea should go in between the two tags, i.e.
<textarea name="blah" rows="<?PHP echo $rows; ?>" cols="20"><?PHP echo $message; ?></textarea>