Hmm, it's because the DIV forces a carriage return.
Hmm.. well, I'm not sure how to do it with keeping the gamertag and username separate, but this will work for certain, though it won't have the indention that you were looking for in your screenie.
Code:
<!-- ##### START HACK - Gamertag Info ##### -->
<if condition="$post[field8]!=''">
<div id="gamertagpostmenu_<if condition="THIS_SCRIPT == 'private'">99<else />$post[postcount]</if>"><b>Gamertag:</b> $post[field8]<script type="text/javascript"> vbmenu_register("gamertagpostmenu_<if condition="THIS_SCRIPT == 'private'">99<else />$post[postcount]</if>", true); </script>
</div>
<div class="vbmenu_popup" id="gamertagpostmenu_<if condition="THIS_SCRIPT == 'private'">99<else />$post[postcount]</if>_menu" style="display:none">
<iframe src="http://gamercard.xbox.com/$post[field8].card" scrolling="no" frameBorder="0" height="140" width="204"></iframe>
</div>
<br />
</if>
<!-- ##### END HACK - Gamertag Info ##### -->
Try that