You could try getting him to use towellettes to wipe off before he comes home. My elderly, disabled grandmother used them to clean instead of taking a bath every day. They are sort of like baby wipes, but they have some sort of soap or antibacterial built in. They might take away the majority of the smell from his skin. He could then put on fresh clothes, be sure to sleep on sheets, not the sofa itself. He should cover the entire sofa, not just the sitting cushions, with sheets so no part of his body touches bare sofa. Febreeze took care of some pet odors that I thought wouldn't ever come out- maybe he can spritz the couch when he gets up in the morning? Good luck!