You could create an array that stores the previous CFrame of the leading car, the leading car would use the table.insert(table, CFrame) function and the wait until it has stored enough positions at which point it could get the first item in the array using array[1] apply that CFrame to the following car and and use the table.remove(table, 1) to keep the table as small as possible.
Do you have a sample script, cause i tried making it and it would not work. (Plus when the 1st car is beginning to move, the table is still empty and does not have any previous CFrames for the 2nd car to go to) so thats another problem.