Hey..listen the best thing you can do here is just talk to your son. I can't give you any diagnosis with the info you gave.
Your best bet is just to talk to him sincerely and politely.. just talk, don't raise your voice, just talk and listen.Don't even give advice unless asked. THATS THE BEST
Talk to a psychologist they can help you.. even a therapist could.
Sorry you see in psychology we must observe the person first even have a chat with him several times to have a diagnosis. Because assuming could do more harm
Watch your sons behaviour, I notice you say he seldom shows emotion. Is he actually lying or is he just not telling the truth and hiding things. Please give a more detailed picture of your son because there are a range of disorders that are very well hidden and may take a while to discover. E.g somebody not showing emotion may just look heartless but in fact covering things up, looking shifty, not being able to look people in the eye is actually one of the main symptoms of aspergers syndrome (a form of autism). You know your son better than anyone so you should be able to tell if this is odd behaviour for him or if he is just being a rebel..there are also things like ADHD to consider but with out further info we won't know...Hope this has helped.
You may want to have him evaluated for borderline personality disorder.
Well I'm a psychology student have very little experience with this kind of situation. But from what I can remember from lesson the best thing to do here.. is talk to your son and confront your son about how you feel.
But remember he is 20 years old and is now a grown man.