Tú haces dos bucles do...while. Se trata de que el segundo bucle no esté después del primero, sino dentro del primero. Pero además, la consulta que haces para obtener los comentarios también debe estar dentro de ese primer bucle.
Código PHP:
<body>
<?php do { ?>
<p><?php echo $row_citas['piensas']; ?><?php echo $row_citas['nombre']; ?> <?php echo $row_citas['apellidos']; ?></p>
<?php do {
mysql_select_db($database_noscasa, $noscasa);
$query_comenta = "SELECT * FROM comentarios, piensas, gente WHERE comentarios.idpiensas=" . $row_citas["id_piensas"] . " AND comentarios.cousuario=gente.id_gente";
$comenta = mysql_query($query_comenta, $noscasa) or die(mysql_error());
$row_comenta = mysql_fetch_assoc($comenta);
$totalRows_comenta = mysql_num_rows($comenta);
?>
<p><?php echo $row_comenta['cocomenatario']; ?> <?php echo $row_comenta['nombre']; ?> <?php echo $row_comenta['apellidos']; ?></p>
<?php } while ($row_comenta = mysql_fetch_assoc($comenta)); ?>
<?php } while ($row_citas = mysql_fetch_assoc($citas)); ?>
</body>
No he revisado que esté bien lo que te he copiado, pero es para que comprendas la idea.
La teoría es:
1º: Consulto a la base de datos y le pido todas las citas.
2º: Hago un bucle para imprimir todas las citas que me ha devuelto la base de datos.
3º: Para cada vuelta de ese bucle, consulto a la base de datos y le pido todos los comentarios de la cita actual (la que se corresponde con esa vuelta del bucle).
4º: Hago un bucle para imprimir todos los comentarios que me ha devuelto la base de datos.
5º: Cierro el bucle de los comentarios.
6º: Cierro el bucle de las citas