I am so sorry that he choses to talk via IM about such important subject matters and knowing that you are at work is very disrespectful!! You should put your foot down about this and tell him that he needs to stop and that you do not need to be upset while you are at work and conversations like that are better handled face to face.
How about you give him a blank calander and ask him to fill in when HE wants you to be home. That way you are not pushing or 'controlling' the situation and you are letting him have the options. Also you should ask him if you guys can alternate some nights when he doesn't want to be around you he can go to a friends house so it is not like you are the only one always leaving the comforts of your home and he can have a taste of what it feels like not being in his own home.