Re: highlight first post
Put <?php if (get_post_position() == 1) { continue; } ?> after the foreach ($posts as $bb_post) line in topics.php to stop the first post appearing in the loop.
To get the first post separately, you could use <?php $bb_post = bb_get_first_post(); bb_post_template(); ?> or <?php $bb_post = bb_get_first_post(); ?> and use the same functions as in post.php in your HTML.
No idea on modifying the number of posts for the first page though
probably a plugin for that