If the issue is your cable connection (and this seems to be the case since the issue appears even when wired), a router will do nothing.
That being said, it's possible you have a defective modem. Has Rogers checked your line stats or sent anyone out to find out why you're only getting half the speeds you're suppose to be getting?
Side note: Getting 20 megabit on a 45 megabit connection, is nothing to be happy about. Of course speeds are always "up to", but it should be pretty easy for Rogers to clear up any issues on your line (barring node congestion or other over capacity issues).