Could be difficult..
Things also depend on whether the app reads, writes, or both.
One thing that comes to mind is that NFS-client software will probably have some buffering. Maybe you can change NFS-client code to add/increase buffering? With some luck it may even be a compile time option.
Or add caching code to the app? If it is one specific app.
If you really need something in between, first thing I would think of is to implement a
Fileystem in Userspace that mirrors/duplicates part of the NFS mounted directory tree and does the caching in between. Seems a similar thing has been made already too. See:
"mcachefs"