You can use file variables (or in this case, a pseudo-variable) to do something when you open a particular file. Add something like this at the bottom of the file:
# Local Variables:
# eval: (progn (org-agenda-list) (split-window-below))
# End:
In order to avoid confirmation questions, you'll also have to set a couple of variables in your init file:
(setq enable-local-eval t)
(setq safe-local-eval-forms '((progn (org-agenda-list) (split-window-below))))
I still find this annoying because the agenda splits the window and so I end up with two small windows: one for the file and one for the agenda (in addition to the window that I started with). But if I don't split the window, then the file gets opened in the agenda window and hides it. Despite that, I hope this helps.
Update: A better alternative
Here's a slightly different method, using other-window
to switch windows between opening the agenda and opening the file. The variable settings are like this:
(setq enable-local-eval t)
(setq safe-local-eval-forms '((progn (org-agenda-list) (other-window 1))))
and the file-locals section in the file itself becomes:
# Local Variables:
# eval: (progn (org-agenda-list) (other-window 1))
# End:
I think this behaves better and in the few tests I did (with just a couple of windows), it seemed robust. I'm not sure whether I would like it if I had a lot of windows open however.