For Silverlight 1.1
There is no prebuilt grid control
So I would manage the placement manually.

For the callback, I would populate the Button.Tag field with data defining its location within the grid, then use (Button)sender.Tag to get the data in the call back function.

psudocode:
placebtn(x,y)
{
b = new button
b.setx = x
b.sety = y
b.text = "bla"
b.tag=new point(x,y);
b.onclick(clickfunction)
}

clickFunction(sender, e)
{
pos = (Point)((Button)sender.Tag);
}

Hope it helps...