Give him a time limit. Ask him how long he plans on staying with you, negotiate it out, and make it stick. 2 months? 6 months? 2 weeks? You need to set boundaries for the sake of your friendship. Otherwise, this will probably be the end of it, and he'll call YOU the asshole.