Eu faria assim:
1 - montaria a grid, em tempo de projeto, pelo Grid Designer
2 - em tempo de execução limparia o RecordSource da grid
3 - passaria um SQLSelect selecionando aquilo que quero e jogando num cursor
4 - atribuiria o cursor ao RecordSource da grid
Assim:
thisform.grid1.recordsorce = ""
Select * from Descricao, Conteudo where Descricao.Codigo = Conteudo.CodDescr into cursor curExemplo
thisform.grid1.recordsorce = "curExemplo"
A idéia seria esta - naturalmente tem que ser adaptada à sua situação real aí.