Bitcoin-QT can do this because the accounts are not actually tied to bitcoin addresses. An account is more like an entry in a DB and can just be updated arbitrarily. The downside to this is that it involves a lot of trust. If 2 people had access to the same wallet.dat, either of them could take all the money.
There are protocols that make transferring bitcoin between 2 parties instant, but they are slightly complex. These protocols also tend to rely on transaction being non-malleable (some overcome this challenge). In general, they start with party "A" sending a large transaction (T1) to a shared multisig address, then a transaction (T2) splitting that transaction between both parties.
T1 - A -> ($100 -> shared multisig)
T2a - shared multisig -> (95$ -> A, $5 -> B)
T2b - shared multisig -> (90$ -> A, $10 -> B)
T2c - shared multisig -> (85$ -> A, $15 -> B)
...
Each of these variants of T2 can be proposed by party A to party B instantly. To close the instant payment channel party B signs the last T2 transaction and broadcasts it to the network. There is also usually a fail safe using nlocktime so that if party B doesn't claim any of the transactions after a certain period of time, then party A can claim all the funds in the shared multisig.
Hopefully this is clear.
It's very helpful. Thanks!