The ship has to be cleared by US Customs and Immigration before anyone can debark. Several things have to happen in order for this to occur. First, all non-U.S. citizens have to report to Immigration at one of the clubs. Depending on how many are on board, this could vary. They have the passenger manifest, and won't clear the ship until all the non-U.S. citizens have reported. Also, anyone who has exceeded their duty free allowances must report to U.S. Customs on board to bay any duty owed. Finally, there are a bunch of other checks that immigration does before clearing the ship. It is really up to them, not the cruise line, as to when people can begin to debark. They board the ship as soon as it has docked, and are in charge. If the ship gets in on time (usually just before 6:00AM), they usually clear it by 7:30 or so.
Keep in mind that this time may vary, depending on a lot of things, but it seems to be pretty consistent.