The first thing that came to mind was rtl_power. It's designed to watch an arbitrarily sized chunk of spectrum. For smaller chunks, FMP and FMP24 would also be an option as they too have a peak hold display, which is what you're looking for. SDR# has an option to mark peaks, but it doesn't hold them, so it's out unless there's a plugin that does it.
Googling turned up a GUI wrapper for rtl_power called rtl panorama. I tried it out, but it has some issues. I ran it side by side with FMP24.
FMP24 was watching a 2.4 MHz chunk of the 770 MHz spectrum while panorama/rtl_power were watching 768 to 774 MHz. The latter has some serious FFT windowing issues as strong carriers would wipe out neighbouring signals. I marked up the attached screenshot to highlight the problem.
The first red line shows where three carriers are present, but you can't really tell in the lower display.
The second red line shows where three carriers are present and a fourth was seen prior. Again, in the lower image, you really can't tell much.
The first yellow line shows where seven carriers were seen, but the panorama window shows only four.
The second yellow line covers 20 carriers, but I make out only 13 in the panorama display.
Again, this appears to be due to a lack of proper FFT windowing. There is enough room in the panorama display to show all the carriers, but it doesn't.
Also, with FMP24, I can see the exact carrier frequencies when I mouse over each carrier (like the 770.85625 MHz shown), but panorama shows a messy value (770.854788877 MHz)
I could see using rtl panorama to watch a large chunk of spectrum, but only if it was a pretty dead band, otherwise signals are going to wipe each other out. If an area had activity, I'd switch to FMP24 for the fine grained display.