i'm afraid running that in the updateEntity function of a TileEntity is the only way i know of to find entities outside the space your block occupies. as for pushing entities, i have never tried it before but the first thing that comes to mind is just simply adding some number to the posY of the entity:
@Override
public void updateEntity()
{
List list = worldObj.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox((float) (xCoord -9), (float) yCoord, (float) (zCoord - 9), (float) (xCoord + 11), (float) (yCoord + 11), (float) (zCoord + 11)));
for(int i=0; i < list.size(); i++)
{
Entity e = (Entity) list.get(i);
e.posY += 0.1D;
}
}