With hash and btree there is no guaranteed way to read a table after it is updated, even when using locks. LMDB tables are better in this respect, as long as you use the right locking procedure (man 5 lmdb_table) but you'd need to make the table group readable so that your tool can lock and read it.
That leaves two problems. The table format is an internal interface. I do make incompatible changes internally, and that is OK because no-one is supported when they rely on an internal interface. The format is described with a comment in the verify.c source code. Instead of hacking file permissions you could try to set up a proxymap service over TCP on 127.0.0.1. But again the protocol is an internal interface and breaking changes happen. I just noticed that this protocol still needs to be changed into "server speaks first" like the rest of Postfix. I have added that on the TODO list for Postfix 3.7. Reading the verify map (and other tables) would need a proxymap like service with a stable protool. It should probably output JSON format, like postqueue -j does. Wietse