First, grab a new address. Have them grab two new addresses. Have them give you one of their new addresses, and the public key* to the other.
Use "bitcoind createmultisig 2 " to create a P2SH address that requires both keys.
Create a raw transaction to this address. Don't broadcast it yet.
(At this point, the raw transaction that you are holding irreversibly transfers coins from your control to a multisig address that requires both of you to redeem.)
Create a raw transaction that redeems this unbroadcast transaction and spends it all** to their other address. The eight zeros at the end are the lock time, in hex. Edit them. Less than 500,000,000 is interpreted as a block number, greater than or equal is interpreted as a unix timestamp. Don't forget to convert to hex.
Locktime is ignored when all inputs are already final, so you need to find the sequence numbers of the inputs. For this, you need to parse the transaction a bit, but this is easy to do by hand. They are eight Fs at the end of each input. Change at least one of them (to anything else).
Now decode your raw transaction to make sure you edited it right. Verify that "locktime" is what you want, and that at least one vin sequence number is less than 4294967295. Use signrawtransaction to add your own signature.*** Send it to them to sign. Have them return the now fully signed transaction so that you can decode it again to make sure it is complete.
(This new transaction transaction can, when the lock expires, spend the funds held by the multisig without your help.)
Now use sendrawtransaction to broadcast the first transaction, and give the locked transaction to the gift recipient.
The final state is that the gifted bitcoins are now in a transaction that you can only spend by getting them to sign a new transaction, but they now hold a transaction that you've already signed that will allow them to spend it to their own wallet.
You can also do this all yourself, and provide them with the WIF of the two keys generated for them, along with the final signed transaction. If you delete all traces of the privkeys and WIFs, you end up in the same place.
There are also variations you could do, like having them sign (or signing yourself if you are going that way) a second locked transaction that will allow you to recover the gift if not used.
* As far as I know, there is no easy way to do this step. If people are serious about doing this, I'll see about adding a getpublickey RPC command.
** Try really hard to guess how much of a fee you'll need in the future. Too low and it might never confirm. Too high and you might be giving away a lot of money.
*** You can change the order here. If you provide the redeemscript from the P2SH address created earlier, they can do the initial signing.
Wow, thanks! but that is WAY over my head. I'd better go watch the Khan Academy videos. . .