Here is the secret of going to Boracay by bus and arriving in Boracay in the morning . . . it is all about the ferry from Roxas Town (Mindoro) to Caticlan / Boracay.
The route: Metro Manila (bus) Batangas (ferry) Calapan (bus) Roxas Town (ferry) Caticlan (ferry) Boracay
Once there was a ferry at 4AM from Roxas that would deliver you to Caticlan at around 9AM. No more! As I discovered last week, to my distress . . . and there is nothing to do in Roxas in the early morning. The ferries to Caticlan/ Boracay leave at 2AM and 8AM.
If you plan to take the bus to Boracay you need to arrive at Roxas Town around 1AM or around 7AM. The travel time by road from Calapan to Roxas Town is 2 hours or less during the evening. So you need to catch a bus (or mini-bus) in Calapan by 11PM or 5AM - best to aim for 10PM or 4AM to be sure.
To get to Calapan by 10PM or 4AM you need to leave Batangas Port around 7PM or 1AM. To get to Batangas Port for 7PM or 1AM you need to catch a bus in Manila by 4PM or 10PM.
Note: the ferries from Roxas Town to Caticlan / Boracay may leave up to 30 minutes early or late - as soon as the trucks and buses are loaded.
Total cost from Manila to Boracay by bus / ferry around Php1,200 including fares and terminal fees etc etc.
On my return trip I took the 2Go ferry from Caticlan / Boracay scheduled for 9PM (it was late by almost 2 hours), which arrived at Batangas Port at around 9.30AM, a bus from Batangas delivered me to Makati before noon. Total cost from Boracay to Manila by 2Go ferry and bus around Php1,400.
To Boracay by bus / ferry is not for everyone, but you get the advantage of meeting different people on the ferries between Batangas & Calapan and between Roxas & Caticlan / Boracay. Meeting new people is part of the joys of travel.
Travel tip: best to take you own food for the bus trip from Manila to Boracay and the food along the way is not so available/good. On the 2Go ferry the food is just about acceptable if you use the air-conditioned restaurant aboard.