I had a hell of a time with this too, because I went into this fight severely under-armed.
The barrel trick worked to a point, but I could never get the knockout punch. After a dozen tries (along with the annoyingly long load time to restart) I found this tip on the Internet that did the trick. It is a cheap trick that takes advantage of a glitch in the game, and isn't very satisfying, but it works. I finally did this because I didn't do enough side quests before fighting him and didn't level up my character enough yet to be very effective against him and I was sick to death of fighting him over and over, especially given the annoyingly slow re-load time to try again.
Here's the trick.
There is a room behind him in the right corner from the perspective of where you are standing when the fight starts. Go there and duck behind the crates (I think they have ammo on them) that are against the wall. If you can get there without him being too close behind you, the AI doesn't seem to allow him to get into a position where he can shoot you.
He will walk right up to the other side of the boxes and eventually throw grenades at you and cause damage to himself because he is too close. The grenades may hurt you a little, but won't do enough damage to kill you and you can regenerate the health fast enough to stay alive if you keep your head down. It takes a long time, but eventually he will kill himself.
If you are impatient, you may want to wait until his alert level goes down and he wanders off looking for you to take a few headshots on him from behind when he is facing away to speed up the process. Just make sure to stay close to your hidey hole so you can take cover when he comes after you. Also, you might have to go aggro him again if he wanders away too far and can't find you then duck back into cover.
Like I said, it is a cheap trick and not fun to play, but if you are just sick of the level and want to get on with the game it works.