To me this sounds like an application-side problem. For each editable field, you need to track three values:
- The value from the most recent read prior to the refresh.
- The current value the user has entered.
- The value after the refresh.
If 1 and 3 are the same 2 is something else, just show the value the user entered.
Likewise if 1 and 2 are the same (i.e. user did not edit the field) and 3 is different, show the value after the refresh.
But if 1 and 3 are different, you need inform the user that he or she is making a change based on an old value. You should make the new value somehow available to the user, but exactly how that UI experience would be, I don't know on the top of my head.
I don't know how much application frameworks will help you with this, but it sounds ambitious to me. Anyway, further questions about this idea, is not really in the scope for the SQL Server tag.