It's not much comfort, but it's called adolescence - and all youngsters go through it to varying degrees.
Speaking as someone who threw his step-daughter out of the house at sixteen because she was that badly behaved, I sympathise entirely, but all is not lost.
Your son is feeling confused and hostile because he is living through changes he doesn't understand, in a world that appears not to understand him. It's really hard to sympathise with someone who is virtually an adult, behaving like an irresponsible child, but there are strategeis that help.
Try and spend some individual time with him - go to the pictures, or bowling, something he will enjoy - and if he rebuffs your first invite, try again. Go for a burger, somewhere on neatrual ground where tempers are kept more easily, and talk to him.
Tell him you understand that life feelis impossible, but you are on his side, and will be there to help him through it all. Ask if is he unhappy with his course, and if he feels a change would be better. Ttry and get him to tell you about how he really feels, when he is not hiding behind bluster and confrontation.
At all costs avoid the 'When I was your age I had to ...' - that kind of statement is designed to make you feel better, it will simply make him feel alienated.
You cannot be your son's friend, but you can be his support, and you need to get that over to him. Tell him that the rows you have hurt you, as well as him, and you want everyone to get on. Include that life is not a free ride, and he has to contribute, not because you are mean or unfair, but because that is the way the world turns, and he might as well learn it at home with you who love him, rather than the bigger world, without your tolerance and care.
Hopefully channels of dialogue will replace some of the rows, but if you show him that you are not trying to rule or control him, but to help and support him, yoiu may well find he understands better and starts to meet you half way with some better nehaviour.
It takes time, and patience, but it can be done - trust me I know.
Keep us posted, and remember, there is always support on here from other parents who know just how you feel!