You can use another list for metadata , e.g. you have a document lib doclib
A with 3 metadata columns (name,author,date). Then u can accomplish readonly
list in this way “
1. Create a list say LIST A with same columns (name,author,date , or any
other optional columns). as in doc lib doclib A
2. Attach a Item added/updated/deleted event handler on your doc lib
doclib A . and insert/update/delete item in LIST A (only metadata fields)
3. Give readonly access on LIST A and remove permission from doclib
A