That would cost them more money. Walmart likes to keep everyone a few hours short of the 40 hour week, just to make sure they don't have to pay the higher overtime rates. I don't know why they don't just put all the employees on salary, then they could squeeze more hours out of them without worrying about paying overtime.
It is less expensive to keep manual labor/retail labor at an hourly pay rate. As you stated yourself, Wal*Mart keeps everyone a few hours short of 40 each week to avoid OT. Well, in times of low volume/sales/customers, they send workers home, which removes them from the timeclock and them being paid. With salaried workers, you can't remove them from being paid during low volume periods.