Apart from hacking, a Dragonite with Wonder Gaurd as it's ability is not obtainable.
However, there is one legitimate way of doing this:
What you need is a really specific set of circumstances. In a double battle, and a Dragonite along with a Gardevoir with the ability Trace, you need to be facing a Shedinja. If Gardevoir traces its ability (because it's random in a double battle which opponent's ability will be traced), she can then use the move Skill Swap (an egg move from Ralts) on Dragonite, there by giving it Wonder Guard.
However, it requires a set of really improbable circumstances, and to be honest, when most people see a Dragonite they're gonna use an Ice move/ switch out for a Pokemon with a Ice move to deal with it. Multiscale is a much better (and practical) option.