See, the HDD hides things from the user. E.g. a 250 GB HDD has more space than that on it. At manufacture, it sets up internal tables that allocate 250 GB worth of good sectors to be used. Then it sets aside, hidden from you, more good sectors as a reserve. Over time, as the disk gets used it constantly checks its own operations in the background. When a sector is becoming unreliable, the data on it is copied to a spare good sector which is then marked as a good sector in use. The bad sector is marked as bad so it won't be used again. In fact, this is one of the functions of SMART technology- when the pool of spare good sectors approaches the lower limit, it puts out a warning about the drive dying.
AFAIK, the hdd vendor utility updates this info in the HDD's internal memory. Then it marks the bad sectors as unavailable and replaces them with good ones from the spare pool, to you it looks like the bad sectors are gone.
The long and short is you can't "repair" a bad sector. Some low-level utilities (like Spinrite), however, probably do a better job of testing sectors and deciding whether they are totally unusable or can be moved back to the "good spare" category.
2) Check these pages. http://www.tacktech.com/display.cfm?ttid=287#hitachi http://www.grc.com/spinrite.htm
3) Having said all of the above, there are certain apps like HDD regenerator which claims to regenerate bad sectors by magnetic reversal. This technology is supposed to be hardware independent. I have no idea whether this actually works. http://www.gold-software.com/download7605.html