Show recent posts in a table format

You still can use lists – just use proper CSS (every third li – first li in every row – should have clear property set; You can use CSS classes or :nth-child selector to do this).

If you really have to use table (I don’t suggest it – it’s not a very good idea, because it’s not semantic), you can do something like this:

<table>
<?php while ( have_post() ): the_post(); ?>
  <php if ( $wp_query->current_post % 3 == 0 ): ?>
     <?php if ( $wp_query->current_post ): ?>
     </tr>
     <?php endif; ?> 
     <tr>
  <?php endif; ?>
  <td>
     ... YOUR POST GOES HERE
  </td>
<?php endwhile; ?>
<?php $i = $wp_query->current_post; while ( $i % 3 != 0 ): $i++ ?><td></td><?php endwhile; ?>
  </tr>
</table>

Not tested it, so it can be a little bit buggy, but idea should be clear.