Haskell -- 138138 137 chars
As a standalone program:
r n=show n++s!!n
s=o"s=" o'clock rock,\n":c:c:o" co'clock, ":s
c=", "
o=(" o'clock"++)
main=putStr$(r=<<)[1..11+1]++"We're gonna rock around the clock tonight."
Edit: I triedused to have a helper function o used to define s by
s=o" rock,\n":c:c:o c:s;o=(" o'clock"++)
but it turns out to cost 1 extra character. Is there any way to compress someall of the "ock"s similar to how"o'clock"s o compresses " o'clock", with no luck. Any ideas/ "rock"s / "ock"s?