Hi,
I actually tried this approach (and it worked for me) and the way I think (at least in my own opinion) is to flag the first post with a switch, add a column in your table say first_post INT 1 and default 0,
then on your post.php, create something like below (notice the $first variable)
// Create the post ("topic post")
$first = '1';
$db->query('INSERT INTO '.$db->prefix.'posts (poster, poster_id, poster_ip, message, hide_smilies, posted, topic_id, first_post) VALUES(\''.$db->escape($username).'\', '.$pun_user['id'].', \''.get_remote_address().'\', \''.$db->escape($message).'\', \''.$hide_smilies.'\', '.$now.', '.$new_tid.', '.$first.')') or error('Unable to create post', __FILE__, __LINE__, $db->error());
}
when the first post is created, it is automatically flagged 1, then you can call it with a seperate WHERE first_post=1 in your viewtopic.php file, echo the results in a different div tag on top of the loop that produces all post..., to remove the first post on the rest pof the post, issue a WHERE first_post=0 to fetch all other remaining posts...
The other way of doing this is to select distinct your post table WHERE topic_id = (youridhere) then get the oldest post by limit 1 in "posted" field... this will likely get the oldest post which is actually the first posted message...
echo your results on top of the loop that produces the threads...
I hope it helps.... (and hope it does makes sense hehehe)