I posted the same question in the Oracle forums and got a reply:
There is no way to get an exclusive write lock on a BDB database if you have already opened it to use page level locking. DbEnv::lock_get(), and the rest of the lock interface, should really only be used if you plan to manage all locks obtained in the environment.