Most flights I take, I see more than 50% of the business class seats vacant.
Traveling companies should have a lottery for passengers, while on board, for those vacant seats. They can also advertise it: "fly with us and you might get a free business class upgrade!".
This will not demotivate business travelers from actually buying fully priced business class seats in advance. Trust me, they will not bet their 10 hour flight which they frequent, business class travelers will pay close to anything to make their flight a little more comfortable, you would too, if you traveled 3 times a week and could deduct the cost from your taxes.