Offset animated color change over many objects?
(01) (Difficult the first time) A color texture influence driver can be used ... with a numeric [custom property] .. 24, 48, 72 and so on ... on the objects ... object data.  This would not be a lengthy script.
You must locate the target of the script in the outliner datablocks view with great care as depicted below.  This requires effort because it is deep hierarchy .  Most people I  suspect have rarely used the datablocks view. The Blender UI debug info  will not behave as desired. Object location x, y, z scripts have better debug info.  If you attempt to write a texture driver from the properties window it will fail.  Blender will not give warning.  Note the driver is located on the Cube object not its material.  Below I typed a distinctive numeric value of .678, not 0 or 1,into the field to help me locate it in the datablock view.  Note the absence of the driver in the texture panel.

The final render will be correct.
Code

frame > 20



(02) Special case .. if the objects are static and identical with simple color... you may be able to join them and UV Map them together. Use a single texture that is an [image  sequence] to slide the color across them.  Your image sequence may need to be structured as twelve logical strips or color.

(03) Materials and textures are not the same .. I would consider 12 textures ... perhaps copying colors ... and keyframe the color influence of the texture. I am assuming you will not have more than 12.  (I am supposed to avoid asking for clarification according to the yellow box text).  This would avoid a lengthy script.  

(04) The more objects you have the more utility of the driver or script.