First of all, if the program authors just ignore your request and still play those silly "force updates" I would just dump their program in favor of something else. Chances are that better programs that just work are out there.
Now about the OS spoofing.
While spoofing browser and OS version is trivial for websites (as the unrelated browser extensions where suggested), lying to programs running on the computer is significantly more difficult, specially when trying to simulate a newer version.
First of all, there are legitimate reasons to require a newer OS, as newer versions include additional features program can make use of. If the new version uses an API introduced in Win8 or 10, it must require it. And while Win7 was in its prime time it was difficult to require anything above it, now that MS officially abandoned it the decition is easier to make for the developer. The dropping market share also "helps" that.
Now to the actual OS spoofing. There are a number of ways programs can know the Windows version they're running on. Calling the relevant API is certainly the easiest and arguably the best, so you must find a way to make that API return something else to lure the calling program.
This kind of function patching is often done by either patching the binary to call a different DLL (and write that DLL yourself to intercept the call) or patching the in-memory image of the binary to hardcode the call result. Both are feasible and have been done in the past, but are of course fairly complex to actually implement. I won't go into details right now, but just ask if you're interested in it.
An additional problem is that programs can use other ways to determine OS version besides asking the OS itself. For example, a program may look for the existence of the "Metro-App" folders and assume it's on Win8 if they're there. Win7 hasn't those. It can also check for the existence of certain API functions above those in Win7. You need to know what the program actually does. and try to affect its outcome, just like you tampered with the binary file timestamp.
And the final problem comes if the program uses a newer function not available on Win7. You need to be ready to reimplement it and "convince" the program to use your implementation (which often means DLL hijacking).
All in all, I personally don't think it's worth to pursue it, other than for learning purposes or out of pure fun. For practical usage I would stick to programs versions supported in Win7 if you're not ready to move away from it.