al-Ula is a small town. The best way to get there is by a couch or your own car. It takes about 8 hours from Jeddah, 4 hours Medina and 2:30 from Khaybar.
There are no actual buses operating on daily basis to al-Ula. You must arrange with a travel agency, and join a group to go to al-Ula. Otherwise, just have your own rental car.
Since it's also very small, I doubt if there is any taxi service or bus station. I hardly noticed any. Just be prepared to be your own transportation.
Although there is a rumour that an airfield near al-Ula will open for commercial traffic in the future, at present there is no way to fly directly to the remote town. One must therefore drive (or maybe take a bus) from one of the distant airports around. The closest airport is that of al-Wajh on the Red Sea, only 2.5 hours away via a recently paved road that traverses the mountains, but it is a small airport, typically with one less-than-daily flight to each of the major cities in Saudi Arabia (and maybe no car hire either?). Medina's airport, by contrast, is much more convenient due to the frequent (sometimes hourly) flights to Jeddah and Riyadh, as well as international flights to major cities around the Arab world. It is how I travelled to al-Ula. Note that the airport of Medina is open to non-Moslems, who are expected to take the outer ring road around the city to avoid entering the restricted area (even though no one ever checks). Although the drive is long from Medina to al-Ula, some 4 hours, the road traverses amazing landscape consisting of rugged mountains, ancient lava deposits, lush green oases, sand dunes and vast plains with acacia trees (see attached photos). There are many petrol stations along the way and about half way is Khaybar with some restaurant options.
Both Hail and Tabuk are about a 5-hour drive away, east and north of al-Ula, respectively, but like al-Wajh, they may not have frequent flights or car hire companies.