We can start by making a curve object-- we'll start with a bezier circle. Then we'll enter edit mode on it and turn it into a non-cyclic version of the same circle, by changing all handles to "free", toggling cyclic, and then recreating the missing segment by facing a duplicate control. After adding some extrusion to see what we're doing, we've got this:

Note that this is a non-cyclic curve. Notice the discontinuity in normals where the curve ends. It has five controls, but two of those controls are coincident.
Now we'll go through the controls and give them 0, 45, 90, 135, 180 degrees of twist respectively. We now have a mobius strip:

Let's give this curve a shapekey, so that we can twist it, as happens in the linked video. Then we'll enter edit on that shapekey, select all controls, and adjust the tilt +360 degrees. Now we use that shapekey to twist the strip.
Now, we want out objects to pass along it. The easiest way to do this is to simply use this curve as the target of some curve modified meshes. Here, I'm going to make a monkey and give it a curve modifier. Then, to move it along the curve, I merely move it in its local X axis.
There's a little bit of distortion from the curve, but not enough to notice at the scale of your video. There are ways we can avoid this distortion, but it's a bit more work, and at this level of detail, it doesn't matter.
However, if we move the monkey too far, it will stop curving. The curve isn't cylic, so our curve modifier won't take the monkey back through on its second time around. That's not a problem; all we have to do is make sure that each time the monkey moves, its X transform is between 0 and 2 * pi (which is the circumference, here, of our unit-length bezier circle.) Let's make an empty, then drive the X position of our monkey by that empty's x position, modulo 2 * pi:

Bezier circles aren't exactly circles, so the radius here isn't exactly 2 * pi, but we can adjust the driver curve to eye to prevent any discontinuity in the loop.
However, we'll still flip as we cross from our tilt 180 end over to our tilt 0 beginning. But that's easy enough to handle: we'll keyframe X rotation for our monkey on the last frame of our first pass, then rotate 180 degrees and keyframe on the following frame. (If we wanted, we could also handle this with a driver, but just keyframing this is fine.)
That monkey, of course, can as easily be a car.
As for our road, that's just another curve modified mesh that isn't animated. The only difference between it and the car is that it's not moving. However, that road will have a discontinuity in normals where our curve is discontinuous:

But all we have do to fix that, after making sure that the road is the proper length for the curve, is to follow the curve with a weld modifier:

The only thing left is for this to loop. We'll keyframe at frames 1 and 501 (not 500) to do a 500-frame loop. Our last frame at no rotation will be frame 250; our first frame with 180 degrees rotation will be frame 251. Other than this rotation, keyframes will use linear extrapolation (or vector handles, it amounts to the same thing in this case.)
If you want to see the animation, and/or inspect details of implementation, you can
