Terminé haciendo esto:
Código PHP:
<?php
while($fila = mysql_fetch_assoc($result)) {
$filas[] = $fila;
}
$sep = array_chunk($filas, ceil(count($filas)/3));
foreach($sep as $k => $col) {
?>
<ul style="width: 30%;<?= (count($sep)-1 > $k) ? " float:left;" : "" ?>">
<?php foreach($col as $fila) { ?>
<li><a href="productos.cat.php?id=<?= $fila['id_categoria'] ?>"><?= $fila['nombre'] ?></a></li>
<?php } ?>
</ul>
<?php
}
?>
Funciona perfecto, pero: ¿Está bien?