I've found that the GoPro GPS can be relatively accurate, but if you're looking for something exact down to the frame, then you probably need an external GPS. If the times that RaceRender is calculating based on the GPS are many frames off, then the GPS may not have had good signal on the day it was recording.
If you have exact timings (e.g. provided by the track day organizers), then you could add these in. Alternatively, you could alter the ones calculated by RaceRender to be a bit more precise (which from the sound of your post is probably closer to what you're looking for). You can do this by clicking on the Input File for the data, and then clicking the Laps button (next to Create Video), then click Edit Lap Times, and add the times in the format:
Code:
Lap 000: 00:00:15.905
Lap 001: 00:01:01.262
Lap 002: 00:00:59.367
Lap 003: 00:00:59.289
Lap 004: 00:01:00.567
where "Lap 000" is the time between when the video starts and when you cross the line on your first lap, and all other laps are in Hours:Minutes:Seconds.Milliseconds and leaving off any time after the last lap until the end of the video. I would recommend finding exactly when you cross the start line each time and noting the time in the bottom right of the screen, and then just subtract each pair to get the "exact" lap times (plus or minus approximately one frame). That should give you a much more accurate lap timer.