Hola
josemv
Efectivamente, no se sabe si habrá el mismo número de registros devueltos. Probablemente sí porque sólo se pedirán 3 por tabla (limit 3) pero es posible que alguna tenga menos.
Antes de plantear la pregunta en los foros pensé en un array, pero preferí preguntar si había alguna forma más directa y lo que me sugirió
Notwen me vino de perlas
Para el asunto de que tengan distinto número de registros devueltos lo solucioné preguntando antes del while cuál era más grande y pasar el bucle por ese.
Código PHP:
$numsql = mysql_num_rows($sql);
$numsq2 = mysql_num_rows($sql2);
if($numsql + $numsq2){
?>
<ul class="contmarquesina1">
<?php
while($res = mysql_fetch_assoc($numsql >= $numsq2 ? $sql : $sql2)){
$res2 = mysql_fetch_assoc($numsql >= $numsq2 ? $sql2 : $sql);
...etc.
y me funciona muy bien

Gracias por tu sugerencia
josemv, un saludo