When a Bitcoin transaction is broadcast to the network it will usually take between 10-20 minutes for a miner to include it in a block. During this time the transaction can be Cancelled by the sender.
How? By double spending the same inputs in another transaction with a higher fee. This new transaction will take precedence over the old one and will eventually be confirmed by miners instead.
The old, unconfirmed transaction will eventually be dropped by most nodes on the network if it remains unconfirmed for too long, making it effectively cancelled. So yes, an unconfirmed Bitcoin transaction can be cancelled, but it requires the sender to have a certain amount of control over the network.