Can you pass the grid information to the connected function? This would still have lots of signal connections to a single function, but since you have the grid coordinates it should be easy to process, especially if the connected function is only called on the button press.
You can connect them and get the coordinates doing something like this:
func _ready():
# just an example - we'll assume you have a 10x10 multi-dimension array
# of buttons to connect in an array called grid
for x in range(0, 10):
for y in range(0, 10):
grid[x][y].connect("pressed", self, "on_grid_pressed", [x, y])
func on_grid_pressed(x_coordinate, y_coordinate):
print ("Grid button at ", x_coordinate, " ", y_coordinate, " pressed!")