<div class="some-wrapper">
<img src="..." class="some-bg"/>
<div class="some-content">тут весь контент</div>
</div>
.some-wrapper{position: relative;}
.some-bg{display:block; max-wdth: 100%; position: static;}
.some-content{position: absolute; top: 0; bottom: 0; left: 0; right: 0;}
С фронта можно отправлять запрос, например, каждую минуту если user1 за эту минуту что-то делал (печатал, двигал мышью и т.п.), в базе для сущности редактируемых данных добавить дату последнего запроса пришедшего с фронта editing_date, а когда user2 захочет изменить данные, проверять сначала editing_date и если с момента этой даты не прошло, допустим, 2 минуты то это значит что данные редактируются и нужно блокировать редактирование для user2. После того как user1 отредактировал данные editing_date можно обнулить, или еще как-нибудь определить что данные отредактированы, например, по дате последнего обновления данных, если эта дата есть в базе, типа editing_date < update_date и т.п.