I am aware that he is sick, and I am not sure how to approach him without offending him.
Advise them that they seem a little under the weather and it would be better for them to get home and have some rest. If they can work remotely then let them work remotely and ensure they are paid for it. They may not even be ill, they could have a seasonal allergy.
That being said, in all places I've worked, I've had one that allowed to work remotely and they did it begrudgingly. At my current place we are allowed one day to work from home remotely, the others are unpaid. It's not something that I often see being pushed. Often the employer would say if you're ill then take the time off to recover which is all well and good when you can afford too.
Here is the problem. I myself don't get paid to sit at home so if I'm capable of getting my two sons ready for school/nursery and I'm not bedridden, I'm going to work. I myself don't like to do this but I'm not in a position to lose a days wage when I have my mortgage/bills to pay and 2 young ones to feed.
I understand that people don't want ill people to come into work and spread germs but chances are you're going to catch the cold anyway even if that person is at home. People can be carriers of an illness and not show any signs of having it so if one of those people is in the office you're still open to catching it. Obviously if you are really ill or have a really contagious disease then yes the right thing to do is take the day off. I wouldn't come into work with smallpox for example.
I don't like sniffing. It bugs me never mind the person who has to listen to this. Personally I have head phones. Being a developer I often wear these to drown out noise anyway. Get a pair and listen to the radio from your PC. Alternatively move to another location with a bit less noise.