You could have another variable that keeps track of what category was last displayed. That way, on each iteration through the loop, you'd see if the row's category is different from the last displayed category. If it is, output the category information. If not, don't.
Example:
$last_cat = '';
WHILE($row = mysql_fetch_array($result)) {
if($row['catagory'] != $last_cat) {
$last_cat = $row['catagory'];
printf("<tr><td><font size=\"+2\" color=\"#ee103a\">%s" . "</font><td><td></td></tr>", $row["catagory"]);
}
// rest of code here
}
By the way, did you know you misspelled "category" ?