Entering SPAC Friday night for a Phish show, we ran into a large group of people from our hometown. One of them kept yelling my name, excited to see me, though I probably haven't had more than a handful of conversations with him in my life and all of those happened years prior. I couldn't, for the life of me, remember his name. Having had a few beers in the parking lot, rather than beating around the bush, I simply said, "I remember your face but not your name."
He gave it, then I had to get his last name from my friend to verify I had the right person in mind. I have always been bad with names. Usually it takes a few encounters or some sort of memorable action for me to remember a person's name. If anything, it's one of my weakest social traits, as forgetting a name is equally embarrassing for both people involved, and I come off as an ass.
My forgetfulness is worse when drinking. Sober, I would have remembered the guy's name at Phish; buzzing, it's 50/50. Once, at the bar, I had a group of six girls I went to high school with ask me to name them one by one, even though I recited their names earlier in the night when saying hello. I went 0-6. Other times, I have flat out called someone by their older sibling for hours or called them Craig when their name is really Greg. Sometimes, I've even mumbled names or just called them, "you." At a wedding in October, I even had a couple grill me about their names and when I couldn't come up with them, they were insulted. One of them said, "We remember yours. Why can't you remember ours?"
Shrugging and apologizing, I wasn't about to try and explain that I never forget a face but names are elusive or that I once hung out with a couple in college almost every day for a month before learning their correct name...at least well enough that I didn't second-guess myself when talking to them.
As far as I know, there's no way to improve on my recollection of names either. I have tried repeating names right in my response to an introduction, but ten minutes after the conversation I usually find myself whispering to someone, "What did she say her name was again?" I've tried association and rhyme games. I've tried just repeating a name in my head until it sinks in, but once I'm distracted, I lose the name.
One thing I have noticed in recent years is there are factors that help me learn a name faster: the person says or does something funny or the person does something embarrassing/socially awkward. Not only will I remember the name, I'll remember the moment, but I'm not offended when somebody forgets my name either--it happens. It's best to simply remind them and move on, rather than holding it against them or dwelling on it the rest of a conversation.
For me, nothing is more effective than a pad of paper and a quick note. At my old job, I went as far as to sketch a cublice layout of the building with everyone's name to study, adding anyone new I interacted with--it worked. I never called anyone the wrong name in the office, and it never appeared I had forgotten anyone.