IMO it's most likely a bad hard drive - but it could also be a problem with other components (but that's much less likely).
The next "test" is to replace the hard drive with a known good hard drive and see if that stops the problem.

If you don't have a spare hard drive on hand, I'd purchase one from a place that will let you return it for a refund (most major retailers will do this). Then install Windows on the new hard drive and see what happens.

Just FYI - don't activate Windows just yet. Wait to see if the new hard drive stops the problems. If it does, you can then go and activate Windows on the new hard drive.