I was thinking whether its feasible to use a 8-bit counter with auto-reload to capture the number of peaks detected within 100ms.
If so, how can i use programming to measure the time between the 2 heartbeats?
You will need to set up one time to generate your "base" clock (1 millisecond ticks). Then you use either an interrupt or polling (heart rates are slow enough to allow this) to wait for the heartbeats.