Adding something here...
My idea is that the line that says:
push meter_needle_color
is actually pushing from a memory location in Stunts data, something like push [3215h]. This position is fixed relative to Stunts data segment.
Unless Stunts uses more than one data segment for its configuration data, the current car parameters must also be located at some other point within the same segment. Now, I don't know if all the resources are loaded at fixed positions, but it would make sense if they were. If the whole CAR*.RES file is loaded as one thing, then it's going to be more complicated and will require recompilation. But let's say that "simd" is always loaded at the same offset relative to DS. Then, there exists another offset that we can place at that push, maintaining the same binary length, that points to an unused parameter from the car.
The simplest way to get this done then would be to pick what CarWorks calls the "red#5 mysterious parameter" because this one appears to be 16 for all cars by default and 16 happens to be white in Stunts palette. Then, every already existing car would still keep a white needle, but it would only take a simple edit with CarWorks to make a car use any other colour from the palette.
Notice that this does not change the value of the variable "meter_needle_color". What it does is pass another variable as a parameter instead. If we were instead to change the former, then the needle colour would change, but would be the same for all cars.
EDIT: I found it... If I am not mistaken, that single line of code should be changed to:
push simd_player.field_A6+4
Of course, to know the new value, we would have to assemble Restunts anyway, but once we do, if it works, we'll be able to spot the single word that has changed in the binary file and from then on, we only need a tiny patch. This... if I'm right about my assumptions.