Sherlock Holmes is not a sociopath. He is not even a "high-functioning sociopath," as the otherwise truly excellent BBC Sherlock has styled him. First of all, psychopaths and sociopaths are the exact same thing. There is no difference. And second of all, no actual psychopath-or sociopath, if you (or Holmes) will-would ever admit to his psychopathy.
Read more here.