Frank,
I'd have pulled him into the office and informed him in no uncertain terms that his conduct was unprofessional and would not be tolerated. I would have further informed him that repeated unprofesssional conduct would be cause for dismissal (if you had that option as his supervisor).
I'm not sure what "authority" I had; this private contractor was micro-managed by touchy-feely women. I do know that at least I could have had him transferred to another supervisor (unaware at the time he was stalking the woman supervisor).
My attitude about it was that his work, and not his opinion of me, was the important detail here, and yes, he did good work. I mean, this was hardly the first time I had ever had to deal with something like this, and cold silence had always worked before.
I've had other supervisory jobs since then, but I could never fire anyone just because he didn't like me. I had always been under the impression that truly professional managers don't let personal issues get in the way of keeping a person who does a good job.