Locktime and Sequence is not completely implemented in mainnet.
You can create a transaction that uses Locktime with Sequence = 0. If you try to broadcast the transaction before locktime, it will fail.
In Testnet, you are able to broadcast the transaction, and it will be included in a block sometime after locktime. Take note that the prev_outputs will be on hold, until included in a block.
I'm not sure how Sequence is implemented in testnet, there is talk about being able to replace transactions in mempool if you use a bigger Sequence number. That would enable prev_outputs to get unstuck from a broadcasted locktime transaction far in the future.
In mainnet Sequence = 0 is the only sensible value to use when specifying locktime, because there is only two possible outcomes:
- locktime have expired, broadcast is successful
- locktime is in the future, broadcast failed
If your intention is to plant very small amounts in paperwallets with an expire date, you could use ALL|ANYONECANPAY to sign every "return to sender" transactions.
That would enable you to collect every unspent output and combine them in a single transaction to save on fees.
When all transactions are signed and saved for use when locktime have expired, you can purge all traces of private keys on your system :-)