Voy a disentir de tu comentario, Alexk, así que con tu permiso:
Con css sí podrías, pero css3.
Puedes usar las propiedades relativas a "multi-column". A sabiendas de que habrá ciertos navegadores que aún no las soportan.
Más información aquí y
aquí también.
Pero lo más práctico será, como te ha dicho Alexk, que generes mediante la programación que uses (ya sea php u otra) varias listas (ul) flotadas a la izquierda, cada una con un número de elementos (li) con "display: block".
Creo que en algún momento leí algo sobre un script para lograr lo mismo, pero...
Un saludo