Mira este es el codigo que uso yo para mi galeria de imagenes espero te sirva, ah!! para paginar uso el paginado de JPinedo buscalo por aqui por el foro o google ya que no recuerdo la pagina.
Código PHP:
<?php
session_start();
include("../../usuarios/reg/config.php");
// armamos la consulta
$_pagi_sql = "SELECT * FROM galeriaromero ORDER BY id_romero DESC";
//cantidad de resultados por página (opcional, por defecto 20)
$_pagi_cuantos = 20;
//Incluimos el script de paginación. Éste ya ejecuta la consulta automáticamente
include("../../usuarios/noticias/paginator.inc.php");
//Incluimos la barra de navegación
echo"<p><div id=\"paginacion\">".$_pagi_navegacion."</p></div>";
<table id="galeria" border = "0" cellpadding="0" cellspacing = "2">
<?php
$columnes = 4; # Número de columnas (variable). si quieres que se muestre 8 columnas,
# lo modificas por el numero de colunas que quieres mostrar.
for ($i=1; $row = mysql_fetch_array($_pagi_result); $i++) {
$resto = ($i % $columnes); # Número de celda del <tr> en que nos encontramos
if ($resto == 1) {
?>
<tr>
<?php
} # Si es la primera celda, abrimos <tr>
?>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<div align="center">
<?php echo "<td><a href=\"verfoto.php?id_romero=".$row['id_romero']."\"><img src=\"".$row['imagen_romero']."\" width=\"120\" height=\"100\" border=\"0\" alt=\"Descripcion\" /></a></td>"; ?>
</div>
</td>
</tr>
</table>
</td>
<?php if ($resto == 0) { ?>
</tr>
<?php } # Si es la última celda, cerramos </tr>
}
if ($resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos
$ajust = $columnes - $resto; # Número de huecos necesarios
for ($j = 2; $j < $ajust; $j++) {
?>
<tr>
<td> </td>
<?php } ?>
</tr>
<?php
} # Cerramos la última línea
?>
</table>