Pues sólo tienes que poner el segundo bucle dentro del primero donde quieras. Un while no es una colección de echos's.
Código PHP:
<?php while($row = mysql_fetch_array($datos)){;
echo '<div class="grid_12">';
echo '<div class="padding-grid-1">';
echo '<div class="t1"<b>Información</b></div>';
echo '<div class="infocancion"><b>Título:</b> '.$row['nombrecancion'].'<br>';
echo '<b>Año:</b> '.$row['anio'].'<br>';
echo '<b>Álbum:</b> '.$row['album'].'<br>';
echo '<b>Artista:</b> <a href="main.php?idgrupo='.$row['idgrupo'].'">'.$row['nombregrupo'].'</a><br>';
echo '<b>Autor:</b> '.$row['autor'].'</div><br><br>';
echo '<div class="t2">Más del autor...<br></div>';
echo '<div class="mcanciones">';
while($row = mysql_fetch_array($datos2)) {
echo '<a href="main2.php?idcancion='.$row['idcancion'].'">'.$row['nombrecancion'].'<br></a>';
}
echo '</div>';
echo '<div class="t3"><b>Letra</b></div><div class="letras"><pre>'.$row['letra'].'</pre></div>';
echo '</div>';
echo '</div>';
}
?>
Algo así debería de valerte.
Para cualquier cosa de diseño, pregunta en el foro de CSS.