In restaurants we always kept the dishtowels in a small bucket of sanitizer (think about it, you're wiping up bits of food -cooked, or raw- with those towels, and gosh knows what else once we add kids into the mixture. If we left the ACTUAL big pieces of food out on the counter by the sink -at least where my towels tend to live, not sure about yours-, we'd actually be able to SEE the rotting, decaying food. As it is, we just smell the mold that's growing on the little pieces that have been absorbed and coated with oil so they don't wash out. And it's no where near as bad as it would be, if there wasn't ALSO cleaners mixed into the smell...but it's still gross.)
When I had a bigger sink, I had a little bucket with sanitizer in it that I kept my towels, and Id throw them in the wash about once a week, just like bartowels in the restaurants. As it is, these days I just use a fresh one every morning. (Huzzah for costco). I typically am doing at least one load of wash per day, so if the towel doesn't make it into the wash that day, it will the next.
If these towels aren't special to you, I'd suggest tossing them and starting over.
If they ARE special to you:
Sacrifice a bottle of vodka and microwave them in a bowl of vodka until boiling for several minutes (deglazes the tiny particles of oil and grease that keep foods embedded in the fabric, just like deglazing a pan over the stove). Then boil in plain old water over the stove for 30 minutes to an hours. Then toss immediately in the wash. If they're not sanitary by then...they're unlikely to ever be.