Most likely, you'll have to download all the block headers. The easiest way is to get them here. Note each block is 80 bytes so it's roughly a 30 MB download.
Next, what you're going to need to parse these block headers and make an array of timestamps. You can then write a program to parse these block headers and find the 3600-second interval that produced the most blocks.
Here's some sample code (Python 2):
data = open('blockchain_headers').read()
timestamps = []
for i in range(len(data//80)):
timestamps.append(int(data[i*80+68:i*80+72][::-1].encode('hex'), 16))
max_height = len(timestamps)
best = 0
for i in xrange(max_height):
for j in xrange(i+1, max_height):
if timestamps[j] - timestamps[i] > 3600:
if j - i > best:
best = j - i
print("%s: %s", (i, best))
break
According to the program the most number of mined blocks in one hour is 61 blocks which started at block 65710 and ended at 65770 all within an hour on July 12, 2010.