Does anyone know what free bitcoin wallet can support the cancellation of unconfirmed transactions?
Yes. Most software wallets will have this feature. It's called double spending with a higher fee.
There is not really a thing as "cancelling" a transaction, once it is broadcasted, it is unstoppable, unless you double-spend it. (The first tx will get cancelled)
Most Bitcoin wallets, including Bitcoin Core, have the feature to help get an unconfirmed transaction that is still in the mempool be more likely to get included in a block by "re-sending" to another address with an added transaction fee. This new address can be one that you own, so you'd be sending the bitcoin to yourself. This feature is called "Child Pays For Parent", or CPFP.
A good guide for how to determine the proper fee is here: https://themerkle.com/what-is-child-pay-for-parent/