Issam,
You must use exclusive to pack, there is no way around that.
However, another approach to the problem of accumulating deleted records is to recycle them. That is, whenever you want to add a new record, first look for a deleted one. If you find a deleted record you can;
SCATTER MEMVAR MEMO BLANK
GATHER MEMVAR MEMO
RECALL
and use that record as your new one. Doing this will mean that you should never have to pack the table as new records will use the old deleted ones.