Hi there,
Unfortunately, there is no online reservation site to book a direct bus from Shinjuku to Shibazakura site in English (Available in Japanese only.....).
What you can do is to book a round trip ticket for a bus from Shinjuku to Kawaguchiko. And then, purchase a Shibazakura liner ticket at Kawaguchiko. (Reservation is not necessary.) It is 2,000 yen for adult, including a round trip between Kawaguchiko and Shibazakura site, and an entrance fee.
For more information, please see the link below.
http://www.shibazakura.jp/eng/access/
Otherwise, the fastest way to book a direct bus is to call the ticket office directly at +81 3-5376-2222. If you ask for an English speaking operator, you can talk in English.
You can also book a direct bus through a reservation site in Japanese (https://www.highwaybus.com/gp/index), following the English instruction below.
http://goo.gl/gv2jEU
As for your question #2, I think booking the ticket 2 days before your trip is too late to assure your seat since you can book a ticket from 1 month ahead of your departure date. Most probably all the tickets are taken by then. So, I would suggest booking a ticket as soon as you can.
I hope this is clear to you.
Good luck!