What MySQL privileges would a read-only drupal db user need
Looking through the core tables of a fairly lean install, these will probably need to be writeable:


access
batch
cache and cache_*
flood
history
node_access
queue
sessions
semaphore
users (for last login date)
watchdog


These I'm not too sure about, worth testing:


registry
registry_file
file_usage
blocked_ips


Contrib modules are different matter, you'll need to look at those one-by-one as it will depend on which ones you use (e.g. ctools has ctools_css_cache and ctools_object_cache)