I've been able to do this a few times. There's kind of a trick to it. On our first cruise, I was waitlisted for a higher cabin category. The reservations agent from
DCL told me to call and check every once in a while, because the waitlists are only consulted once a day. So, if something opens up during the day, the waitlist is not automatically consulted. If someone subsequently calls and inquires as to an opening, they will get it. The waitlist is consulted each morning and any openings at that time are filled from it. The agent's advice was to call and check for openings a couple times a week, and to call everyday during the week just prior to the 60-day mark. Since final payment is due then, many cancellations happen during this week.
I've used this method successfully each time I've been waitlisted, once for the stateroom, and twice to move to early dining. I've never had to wait until I was on board to get the changes I wanted.
The only drawback to this is that if you've booked through a
travel agent, they have to call to check and make the change. So I would guess that you'd have to keep after the agent to follow up on this for you. On our last cruise, I booked directly with DCL, even though I could have saved a bit of money through an agent, because early seating is a primary concern for us, and I wasn't willing to trust the agent to be as persistant as I was willing to be.
Hope this helps. Good luck!