This is an old question, but it showed up repeatedly in the search results, so I thought it may be relevant to share some info regarding it.
I have no technical background on how Geopackage works internally, so after searching for information on the simultaneous editing capabilities of Geopackage and barely finding anything conclusive, I decided to try it myself. I loaded the same Geopackage layers in two different Qgis (3.8.2) projects, and this is what I found out.
- If the layer you want to edit is stored in a Geopackage file/database with other layers, concurrent editing on one of those layers doesn't seem to work: both users will get a database error when trying to save.
- However, if the layer you want to edit is on a separate Geopackage file with no other layer, both users will be able to see and edit it at the same time.
This is the (apparent) behaviour in that second case:
- If one user adds features to the layer and saves it, the other user will instantly see the new features in his loaded version of the layer, WITHOUT LOSING his/her own unsaved changes. It will also work in the opposite direction.
- If one user DELETES one feature while the other is EDITING it, the deletion "wins". The edition is not propagated even if you save the layer. Deletion, however, does get propagated when the deleting user saves the layer.
- If both users try to edit the same shape, the first one to save will propagate the changes to the other, but the other will still see the outline he/she was editing on top of the updated shape (see image below), and will be able to overwrite it on save. I don't know if that's a feature or just a (quite useful) bug.
In conclusion, I wouldn't trust a Geopackage layer for all kinds of concurrent editing. But if both users are just adding objects or being sure they won't be editing the same ones, it seems to work very well, like almost real-time collaboration.