I'm needing to design a bluetooth enable hour meter. I'm thinking of using a ESP32-WROOM module. My question is, how do I store the seconds value? If I increment a counter every 1 second while the device is powered, and then save it, I'll degraded the non volatile flash. Is there a counter IC that wont loose its value over a power cycle
Why would you store the seconds value (or any other) in non-volatile memory?, you just store it in normal RAM - the fact that it disappears if you lose power doesn't matter, because if it's stored in non-volatile memory it's still going to be wrong, so not worth storing. Are you perhaps confused as to where variables are stored?.
If for some bizarre reason you want to store them?, then you could add a FRAM (either I2C or SPI) that doesn't suffer from multiple writes (I use them, but not to store clock variables).
Or use a battery backed clock module, they are freely available at low cost, and keep the clock running even when power is lost.
Or, as you're using an ESP, simply read the time off the Internet when it powers up, so it automatically resets the time whenever it boots - you could do that as well as storing the value (although I still fail to see any reason to want to store it?).
Assuming you're wanting to store a record of how long an item has been running?, then you only need to store the values when power is removed - simply detect the loss of power, and save the values before shutting down - no issues at all with multiple writes.