Прежде всего, это вопрос HTML / CSS (кроме части цикла while ()).
Трудно сказать, почему миниатюры соприкасаются друг с другом. Заставьте их плавать влево и установите достаточные поля вокруг обёрток для миниатюр, например,
div.thumbnail { float:left; margin:10px; padding:8px; border:1px solid #aaa; }
Re. цикл, да, обычно вы используете цикл while () следующим образом:
$query = "select * from images where 1";
$result = mysql_query ($query);
if (mysql_num_rows ($result) > 0) {
while ($image = mysql_fetch_array ($result)) {
... your action with this image here...
}
}