I guess this is not easily possible without some advice. When you run org-babel-execute-buffer the cursor moves into each block, so you need to save the point before you run it, and then test if point has moved when org-babel-execute-src-block is called.
It might be easier to write your own version of org-babel-execute-buffer for this. You could use org-babel-map-src-blocks as the base, and in each block run a test that determines if it should be executed.
John
-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803