Analiza bien lo que estás haciendo:
Código PHP:
Ver original// MAL
<div>
<?php loop { ?>
<a>link</a>
<?php } ?>
</div>
// BIEN
<?php loop { ?>
<div>
<a>link</a>
</div>
<?php } ?>
La cosa es obvia, abres y cierras dichos tags antes y después del bucle, por eso sólo se genera un div únicamente.
Solución: mete los tags de los divs dentro del bucle, ¿o cómo esperas que se repitan?