Unfortunately, this is a problem all over. At some point though won't every record overwrite the other person?
Whether they do it at the same time, or not, difference in timing meaning, they see the previous person's version, before they try to update, versus just updating.
I wish I could recommend a specific one that works best for you, but for each company and need it can be different.
What I can say is this.
Whenever you load the data, you have the Created and last modified datetime as well as the last modified by
* You can do a validation against the back end, to see if those are different than the current in memory instance and if so, you can reload the data (whether overtop of the user in the app), or build in a way to say, hey this has changed, let's review the difference and let them decide if they apply their current typed in changes.
I don't know what your volume and velocity of changes it, but logistically, you could keep running into this all day long for the same user, until they pull their hair out going ugg.
But in your case, what are the volumes and velocity of changes expected to the same record, to the same fields within your list, by multiple people at the same time?
Another option, is different than what your "list for each column of conflicts", to be more, a list per set of properties that a given group cares about.
Now if you have 5 people in the same group all updating the same record at the same time, I would honestly be asking the business soundness of this to begin with.
What type of records are these? Contacts? Contracts? etc.
Why are different people in the same group even making these changes at the same time?
And so on from both a business side and then a technical side.
But again this is just a community site, not a Technical Design or Archicture site.