I'm having trouble getting the link for you because of board woes but there have been other good posts of people "doing St John on their own", with taxis and ferries, and it's not too difficult.
there is supposed to be a 45 minute ferryride ($7) from Charlotte Amalie to Cruz Bay, as well as the 15-minute ferry ($3) from Red Hook to Cruz Bay, which is reached via taxi from Havensight or C.A. about $8 per person taxi fare. So each way transportation is $7-$11 pp.
Then when you get to Cruz Bay St John you can catch a "safari bus" ($4-$5) to Trunk Bay or Cinnamon Bay. There is park admission ($4? free for kids?) at TrunkBay, and Cinnamon Bay supposed to be no charge to enter.
It is a lot like the Disney excursion but you have more freedom to leave the beach when you want (don't miss the ship at 415pm!!) and it is cheaper. And you're not dealing so much with the excursion crowds. Sounds like the Disney excursion gives you about 2 hours beach time, on your own you could probably stretch it to 3 hours, but it's advisable to head back on the 1pm or 2pm ferries to be safe.
hope this helps, and hope I didn't leave anything out!!!