I think that you don't want to use the group by function in SQL, it would only return one result. Instead use the order by function, like this:
$sql = "SELECT images.link, images.date
FROM images
ORDER BY images.date;";
After you have gotten all the results you can do something like the following to get the dates only once:
$date = null;
while ($row = mysql_fetch_array($result)) // For each result
{
if ($row['date'] != $date) // Check if it's a new date
{ // If it's a new date set the date you check to the new date and echo the date
$date = $row['date'];
echo "Images added on " . $date . "<br />";
}
echo $row['link'] . "<br />"; // Echo the link
}
Edit: I have not actually made a link and you probably have to make sure that it shows the way you want it. I just want to give you a basic idea how it can be done.