1) Your friend will need to initiate a transfer for your domain registration. He'll also need the Auth Code shown in your Reg. Transfer list, which is the screen that includes the Initiate Transfer routine.
2&3) Only Support can transfer a hosted domain between users here, and only if the destination user isn't set up on a plan that's discounted with a promo code. Submit a Support ticket to initiate the hosting transfer.
4) You just need his web panel login ID, which is his e-mail address.
5) Nope. Those are the two pieces. I'm not sure if DreamHost will copy the data over to the new user or if they'll just set up an empty Fully Hosted domain for him. In either case, be sure that you back up any and all data you ultimately plan on transferring.