WriteableBitmap の水平方向の中央にユーザー コントロール (この場合は TextBlock) を配置する必要があります。
textblock1.RenderTransformOrigin = new Point(0.5, 0.5);
wp.Render(textblock1, new TranslateTransform() {Y = topMargin, X = imgWidth / 2});
しかし、テキストブロックのピボット ポイントがまだコントロールの左端にあるように見えます。どこで間違ったのでしょうか?