Loop multiple objects along the same path
Using Drivers and Follow Path constraint.

Drive the offset of the constraint from 0 to 1 using Fixed Position.

Hard coded 250 as the path length in frames. The driver method has two parameters, the current frame (scene.frame_current is known to the driver namespace as frame) and the offset at frame 0.

import bpy

path_length = 250 # path length in frames

def offset(frame, start=0):
    # start position at frame 1
    f = round(frame + start * path_length)
    return (f % path_length) / path_length

bpy.app.driver_namespace["offset"] = offset


Sample file and image with Cube (offset 0), Cube.001 (0.2) and Cube.002 (0.4).