Your friend is correct, he can prevent Wither and/or Infect damage just like regular damage.
The reason for that is that damage and damage effects are separate things. That difference is usually not important because in actual play, the steps are walked over and the correct outcome is intuitively clear.
So, here's how it works in detail in case difficulties arise:
At first, damage is just a number with some attributes such as its source. It knows nothing of life points, loyalty or -1/-1 counters.
Next, prevention and replacement effects happen. The damage number is reduced or replaced accordingly.
Only now damage becomes an actual effect on the player or object.
When a creature without wither or infect deals damage, the effect of that damage is that the affected creature gets a damage marker; or if the damage was dealt to a player, that player loses that much life.
When a creature with Infect and/or Wither deals damage, the effect of the damage is that that many -1/-1 counters are placed on the creature or the player gets that many poison counters.
In both cases, damage prevention effects like you cited above simply reduce the damage before the effect happens, so the effect is reduced accordingly.
119.3a Damage dealt to a player by a source without infect causes that player to lose that much life.
119.3b Damage dealt to a player by a source with infect causes that player to get that many poison counters.
119.3d Damage dealt to a creature by a source with wither and/or infect causes that many -1/-1 counters to be put on that creature.
119.3e Damage dealt to a creature by a source with neither wither nor infect causes that much damage to be marked on that creature.
119.4. Damage is processed in a three-part sequence.
119.4a First, damage is dealt, as modified by replacement and prevention effects that interact with damage. (See rule 614, "Replacement Effects," and rule 615, "Prevention Effects.") Abilities that trigger when damage is dealt trigger now and wait to be put on the stack.
119.4b Next, damage that's been dealt is transformed into its results, as modified by replacement effects that interact with those results (such as life loss or counters).
119.4c Finally, the damage event occurs.