I honestly have not worked much with 2.8 yet so I dunno really

The perimeter of a sphere (or we rather need just a circle) is quite easy to get with basic math, as long as you have 1/1/1 scaling on the sphere just taky any of the axis dimension and multiply by π

(or use this: https://goodcalculators.com/sphere-calculator/)

as to a curve length, there are tricks on how to get it, but I saw this method online which would by far be easiest:

in blender 2.8 select your curve, go to tab scripting, and in the console: obj.data.splines.active.calc_length(resolution=0)

well unless I am messing something up (which would be emberassing) the result should give you a number of rotations of the sphere needed to traverse the curve, so just convert it to degrees (1 turn being 360° obviously) and add that to the axis. But really I claim no deeper knowledge about this stuff. I just remembered my highschool math years and thought it was a simple way to get the correct rotation “speed”. Maybe there is a better way, I don’t know.

The result will always look a bit off I guess, as there is no obvious reason for a sphere to follow a curve like this and even if there were the sphere would not turn around Z axis to clear the curves (like a car does) but rather rotate along other axis as well, but apart from some actual physics simulations this is as close as I would be able to get.

Someone good with drivers could probably set it up just with carefull math, but that is way above my knowledge.