OK, I've answered my own question, and the answer is a boundary M-file.
Though wbound makes a boundary M-file that is based on a simple formula, in exactly the same format as a boundary condition matrix, it's possible to write your own boundary M-file *any way you like*. As long as it takes (p,e,u,time) as inputs and returns [q,g,h,r] as outputs, it works fine with assempde. You just pass the filename of the boundary M-file as the first argument to assempde. So I've written a boundary M-file that takes the necessary inputs (p,e,u,time) but ignores them, instead constructing [q,g,h,r] from my measurements. And it works. Reading the help file for pdebound over and over was the key!
Bruno, I'm still not following your argument that Neumann boundary conditions can't work. I understand that they leave room for an arbitrary constant of integration, but that's OK for me, because in my application, the solution to Poisson's equation is a stream function. My real interest is its gradient, for which the constant of integration is irrelevant. You seem to be concerned about the fact that the nodes are discrete points, but so are my measurements, and so is every numerical grid; again I don't understand. In case we're still talking about two different things, here's what I mean by Neumann boundary conditions: http://en.wikipedia.org/wiki/Neumann_boundary_condition http://mathworld.wolfram.com/BoundaryConditions.html