In abstract :
You have 2 Pi's: Starting-Pi and Finish-Pi.
Starting-Pi: Has the trigger mech or button to start the timer and initiate the starting of the timing...
Starting-Pi Sends Signal of 'START' to Finish-Pi, Finish-Pi receives Signal, determines its a 'START' signal, and begins it's timer.
Once payload (runner or racer) reaches the Finish-Pi, you have another Trigger mech and or button to trigger the FINISH signal to the Finish-Pi.
Finish-Pi receives the signal, and stops the timer. Timer value will determine the time it took to run the course.
The biggest hurdle here (no pun intended unless you're running hurdle races), is the sending of the Signal from Starting-Pi to Finish-Pi.
There are quite a few protocols involving a network communication (Signals!) and physical wiring, or even light sensor codes and IR code if you want to go that route.
If you do not have a network, there are wire protocols, you can run wire to tie your two pis together and send signals that way.
If you have a network, you can send signals via HTTP server endpoints, MQTT protocols, Web Sockets, WebRTC, etc etc etc etc....
Many many ways to send that signal.
For starters I find its easy to spin up a python / node / server instance and include appropriate libraries or nodes to send and receive those signals.
Node-red can easily cover all these bases.
You can use this to control GPIO and Wire Protocols.
Hope that helps some.