Is this possible to implement with bitcoin?
The only way I am aware of to perform truly offline bitcoin trading is through the use of devices such as Opendime (
https://opendime.com/), which is a tamper-proof USB wallet you can hand from person to person and needs to be destroyed to access the funds stored within.
To move bitcoin between wallets there must be a connection to the internet at some point. This could be via radio or mesh networks as bitmover has suggested, or also potentially via phone lines, SMS or by simply storing the transaction until internet access is established. The problem with all these methods is it introduces a new element of trust. Let's say we make a trade and I sign a transaction sending bitcoins from my wallet to yours, and give you a copy of the transaction. You now set about transmitting that transaction to the network via radio or some other non-instant method. In the meantime, unknown to you I have internet access on another device, and send all the coins to another address. The signed transaction you have in your possession is now useless, and I have stolen from you.
In your suggestion of smartphones and NFC, the process could easily by manipulated by a single person with internet access.