Open Manage | Security
Select and edit the privilege set assigned to these users. (If there is more than one, repeat the following steps for each privilege set)
In the Records drop down, select the option for Custom access.
In the Edit column select the "limited..." option in the drop down at the bottom of the dialog
Enter an expression such as:
CreatedBy = Get ( AccountName )
Where CreatedBY is a text field that auto-enters the user's account name at the time that the user created the record. If you have existing records and do not have such a field, you'll need to add this field and then update the contents of this field for all currently existing records before this will work for your users.
Repeat this for the "delete" column
Users will now be able to view all records but will get error messages if they try to edit records that they did not create.