io eliminerei quel for che è del tutto non necessario nonchè la fonte del tuo problema.
fai una cosa così:
ovviamente prima del while inizializza $i con un valore pari a 1Codice PHP:
# all'interno del while già strutturato da te
echo $i == 1 ? '<tr>' : NULL;
?>
<td>[img]<?php echo $immagine ?>[/img]</td>
<?php
echo $i == 4 ? '</tr>' : NULL;
if ($i == 4) {
$i = 1;
}else{
$i++;
}