Que tal 
WinderJerter, 
podrias traerte los registros pasados de tiempo directamente en la query en vez de traer todos los registros y comparar la fecha, tambien podrias guardar el id del registro borrado para tirar un 
where in en vez de una query para cada uno, algo asi:    
Código PHP:
Ver original- include_once("bd.php"); 
-   
- $query  = 'SELECT * ' 
-         . 'FROM images ' 
-         . 'WHERE NOW() > DATE_ADD(date,INTERVAL 1 HOUR) ' 
-         . 'AND status = 0'; 
-   
-   
-     $delete_link = array('http://', '.upload.com'); 
-     $str_link    = str_replace($delete_link, '', $image['location']); 
-     $toDelete[]  = $image['id']; 
-     unlink('servers/' . $str_link); 
- } 
-   
-     $sql_del    = 'DELETE FROM images WHERE id IN(' . implode(',', $toDelete) . ')'; 
- } 
te sugiero tambien que tanto las tablas como los campos no los nombres con palabras reservadas ni tipos de datos, por ejemplo el campo date, te puede dar problemas. 
Saludos.