First off, I have absolutely no idea what browsers actually support this CSS attribute, and implements it properly. I believe FF 3.5 does, but if this is supposed to be used in any other browser, you should definitely test it.
Assuming you want your first table row to be a table header and not a table row, you will need to adjust the markup accordingly. HTML markup is about semantics, not presentation.
<style type="text/css" media="print">
.breakAfter {
page-break-after: always
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>ID</th><th>author_first</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td><td>John</td>
</tr>
<tr>
<td>20</td><td>Jane</td>
</tr>
<tr class="breakAfter">
<td>8</td><td>Anthony</td>
</tr>
<tr>
<td>14</td><td>Lucy</td>
</tr>
</tbody>
</table>