It's quite simple if you think about what you want to do:
The list is ordered by date, with today at the top, then yesterday, etc.
So you need to do ORDWER BY date_field DESC
Then you want to know which day an item belongs to, so you need the year, month and day.
So it would be something like
SELECT concat(year(date_field),month(date_field),day(date_field)) AS YMD, foo, bar
FROM table
WHERE something=something_else
ORDER BY date_field DESC
Now all items are ordered by date, and they all have an YMD value that gives you something like 20010524. That value will be the same for all items that are from the same day.
Now you can loop through the items and check if the YMD value is the same as the last one. If it's not, then you skip a line, print the date, print the item and continue.
If the YMD value is the same, just print the item.