Is this technically feasible?
You can just have a real wallet with some small amount.
fake BTC's that can actually be moved to the culprit's account but totally useless?
They are called "test coins". You can pick testnet3, testnet4, signet, or regtest. The problem with testnets is that they are worth non-zero amounts, so they are no longer "fake". But yes, nothing stops you from using an altcoin, which would be based on Bitcoin, for example BCH, and pretend to believe, that "BCH is Bitcoin", and when you said "I have one Bitcoin", then you meant "1 BCH", instead of "1 BTC".
First: What is "the system"? The device of the victim?
Yeah, many people forget, that we are here in a P2P world. If your only goal, is to see something in some block explorer, or a site like that, then it is easy. It is then only about making a web page, that could display you anything. It could even say, that you have more than 21 million coins, because why not.
But if the thief's wallet should register the transaction, then your feat becomes impossible. Fake bitcoins stay fake.
That's why the simplest solution is to have a separate wallet with some small amount. And you can even use different units, like mBTC, or bits, or even count everything in satoshis, if you want to.
You could transfer the BTC with a timelock far in the future.
Yes, and send it through
https://live.blockcypher.com/btc/pushtx/ because they can accept it, and display it, and even say, that it has something like 20% probability to be included in the next block, even if you timelock it to 10 years.
But you can show him a screenshot of your transaction going out.
It is probably better to show a buggy block explorer, like the one linked above. But I guess there are more buggy ones, and another one can be made, if the operators of this specific one will decide to ever fix it.
The thief would "see" the transaction on his wallet, but he can't move the coins until the timelock has passed.
This is hard to do, because adding opcodes (like OP_CLTV or OP_CSV) makes the whole thing Script-based, and not key-based. And if you alter a single bit in the output Script, then you will get a different address out of it.
But yes, if someone is using Script-based addresses, then "<lockConditions> OP_CODESEPARATOR <normalConditions>" is a good envelope to use, because then, you can pretend, that the output Script is set to just "<normalConditions>", and sign it properly.
"Fake bitcoins" cannot be used for scamming, BitMaxz is wrong here.
I guess many people were scammed, by buying test coins, at the price of Bitcoin, or even bought BCH or BSV, thinking they are buying BTC.