Ahí modifiqué un poco tu código, fijate que para contar la cantidad de registros te conviene usar COUNT(*), de lo contrario estarías haciendo que mysql te traiga todos los registros cada vez que mostrás la página y esto sería ineficiente.
Luego puse en el lugar que tenés que mostrar los datos, directamente $row["dato_x"].
Código PHP:
<?php
$regx = 2;
$regy = 4;
$registros = $regx * $regy;
/////****PAGINADOR*****/////////
if(isset($_GET['p'])) {
$pagina = $_GET['p'];
$inicio = ($pagina - 1) * $registros;
} else {
$inicio = 0;
$pagina = 1;
}
$paginaActual="fotos.php?";
$queryTotalRegistros="SELECT COUNT(*) FROM catalogo WHERE dato_4 = 'fotos' AND estado = 1";
$resultados = mysql_query($queryTotalRegistros);
$row = mysql_fetch_array($resultados);
$total_registros = $row[0];
$queryRegistros= "SELECT * FROM catalogo WHERE dato_4 = 'fotos' AND estado = 1 ORDER BY 1 desc LIMIT $inicio, $registros";
$resultados = mysql_query($queryRegistros);
$total_paginas = ceil($total_registros / $registros);
////////*****FIN********///////////
if($total_registros > 0)
{
echo "<table border='2' cellpadding='50' cellspacing='20' style='height: 55%; width: 14%;' class='style4'>";
$x = 0;
$y = 0;
echo "<tr>";
while($row = mysql_fetch_array($resultados)) {
if($y < $regy) {
if($x < $regx) {
echo "<td>";
echo "<a href='#' onclick=\"javascript:window.open('detallefoto.php? id=".$row["IDCatalogo"]."','','toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=520, height=435, top=10, left=10');\">";
echo "<img src='".$pathImagenesNotas."/".$row["imagen"]."' alt='$PieImagen' width='70' height='70' style='border: 2px solid; border-color:#000000;'/>";
echo "<br>";
echo "dato_1: ".$row["dato_1"]."<br />";
echo "dato_2: ".$row["dato_2"]."<br />";
echo "dato_3: ".$row["dato_3"]."<br />";
echo "</a>";
echo "</td>";
$x++;
}else{
$y++;
echo "</tr>";
echo "<tr>";
$x = 0;
}
}else{
break;
}
}
echo "</tr>";
echo "</table>";
} else {
?>
Espero que ahora te funcione cualquier cosa avisá.