I would personally perform the Buffer on all of the car GPS points and Spatial Join them to all of the people points regardless of time using the One to Many option to preserve all of the data for all of the cars and people. Then I could use an Attribute query to select against the time fields to find all people within 5 seconds of every car time:
ABS(car_time - people_time) <= 5 seconds. Then I would run Summary Statistics on the selection using the car/time GPS point ID as the case field to get the count of all of the people I selected for each car GPS point. I would join that to the original car GPS points and calculate the count over to the points for display purposes.
This is better in my opinion than using predefined time ranges, since the 10 second window is a shifting range. Also this creates a single output as opposed to multiple outputs for each time window. The time taken to preselect for each time window will be much more time consuming than doing a Spatial Join that overbounds the amount of matches in most cases. Potentially the process should be limited to run for each 24 hour period on the cars and people by placing a definition query on both for a matching 24 hour period before performing the spatial join and creating separate outputs for each day, but I would never do the number of definition queries and spatial joins it would take to isolate every 10 second period separately during a day.
If there are multiple people points for the same person with different times that could fall within a car buffer I would perform two summary statistics, first using both the car/time ID and the person (not time) ID as the case fields to get the rows collapsed down to the individuals who were captured by the time window and then run the Summary by car/time ID to get the count of those people into a single row for each car/time GPS point.