Yes, I believe WooCommerce can do this. For example, the authorize.net plugin for credit cards has a setting for authorize only instead of authorize and capture. Once you authorize the payment, you can go into WooCommerce at any time and capture the funds; eg, when you have the product ready to ship.
I think most payment gateways have the option to authorize only, but you would need to check before deciding on the payment gateway you use.
]]>