Steinmeier - the Social Democrat (SPD) candidate to challenge Chancellor Angela Merkel in federal elections on September 27 - said surplus cash should be stored in a reserve fund to guard against job losses.
"We are in the worst economic crisis for decades and companies should not be able to ask for help from the state and at the same time disburse millions to their shareholders," Steinmeier said, without mentioning specific firms.
He added that "this money would be better placed in a reserve to finance employment guarantees for workers."
Earlier this month, Berlin proposed establishing a €100-billion fund to help out firms unable to secure sufficient credit from struggling banks.
Steinmeier said that companies handing out dividends to their shareholders should not later request to be sheltered by this "protective shield."