Assuming the timestamp will be DATETIME - otherwise use FROM_UNIXTIME to convert to DATETIME ...
Due to [rolling] during the last hour:
SELECT COUNT(*) AS cnt FROM MESSAGES m WHERE m.timestamp BETWEEN DATE_SUB(NOW(), INTERVAL 1 HOUR) AND NOW() GROUP BY m.user ORDER BY cnt DESC LIMIT 1
If you need a specific hour, indicate the hour:
SELECT COUNT(*) AS cnt FROM MESSAGES m WHERE m.timestamp BETWEEN '2011-06-06 14:00:00' AND '2011-06-06 15:00:00' GROUP BY m.user ORDER BY cnt DESC LIMIT 1
source share