Encrypt a file for random access but only after an initial read of the whole file
Yes, you can do that.  Start by generating a random key and encrypting the data under that key.  Now, you in turn encrypt that key with your password-derived key.  The twist is that you include the already encrypted file in your PBKDF.  So you generate a random key $k$ and then encapsulate it as $\mathcal{E}_{k'}(k)$, where $k' = H(PBKDF(\text{password}) \| \mathcal{E}_k(\text{file})$.  That way, to decrypt you have to read and hash the entire encrypted file to obtain the wrapper key, which gives you the key to decrypt the file itself.  Once you have that key you can do random access, but for each password attempt you have to read and hash the whole file again.