You could do it with two separate recordsets, but another solution is to add a bit of custom code like:
<?php
$lastCat = "";
?>
<?php
$wa_startindex = 0;
while(!$Recordset1->atEnd()) {
$wa_startindex = $Recordset1->Index;
?>
<table width="100%">
<tbody>
<?php
if ($lastCat != $Recordset1->getColumnVal("category")) {
?>
<tr>
<td><?php echo($Recordset1->getColumnVal("category")); ?></td>
</tr>
<?php
$lastCat = $Recordset1->getColumnVal("category");
}
?>
<tr>
<td width="100%"></td>
</tr>
<table width="100%">
<tbody>
<tr>
<td width="100%"><?php echo($Recordset1->getColumnVal("movie")); ?></td>
</tr>
</tbody>
</table>
<?php
$Recordset1->moveNext();
}
$Recordset1->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>