Another option would be to use the SQL DATEPART functions like this:
SELECT
DAY(TimeStamp), MONTH(TimeStamp), YEAR(TimeStamp),
DATEPART(HOUR, TimeStamp),
COUNT(*)
FROM
dbo.Products
GROUP BY
DAY(TimeStamp), MONTH(TimeStamp), YEAR(TimeStamp),
DATEPART(HOUR, TimeStamp)
ORDER BY
COUNT(*) DESC
This gives you not just the maximum number of views for any given hour, but all of them, sorted by the frequency. Mind you: other than RexM's solution, this is based on the "hour" part of your "timestamp" - so if you have quite a few views at 7:59 and another burst at 8:01, in my solution, those wouldn't be shown together (since one is hour=7 and the other is hour=8).
If you need the "any 60-minute timespan" approach, use RexM's basic idea (DATEDIFF with minutes <= 60).
Marc