you can try to 'lube' it with graphite or white lithium grease. Neither ever worked for me before I allowed the housing to get too hot and melt a bit. I will replace it some day, but I have bigger fish to fry right now.
I am sure that some others will be along with handy solutions. In fact if you get lucky, Oz will stick his head in here and he always has a few choice words of wisdom.
lol i've had my speedo Whine like a mofo. i think something's screwed up cuz it's off by about 40 mph at times. and once it went all the way down to 6 o'clock. i changed the cable but that wasn't it. Perhaps it's the speedo itself? or maybe the gear in the tranny?
pull the cable, disconnect the drive end from the trans, and clean the cable and the housing as best you can then lube the cable with a good multipurpose grease, not wheel bearing grease something lighter, about 3/4 of the way up and reinstall the cable, and reconnect it. that should cure your problem for the next 30k miles or so.