Это не совсем полный ответ, но на самом деле кажется, что вы делаете это сложным путем.
Вместо того, чтобы создавать свои TableRows вручную, вы должны настроить их в xml следующим образом:
tablerow.xml:
<TableRow xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:id="@+id/content"
android:singleLine="false"
android:textAppearance="@style/someappearance" />
</TableRow>
Перед циклом получите ссылку на FlaoutInflater:
LayoutInflater inflater = getLayoutInflater();
Затем внутри цикла создайте экземпляр tablerowиспользуя LayoutInflater:
TableRow row = (TableRow)inflater.inflate(R.layout.tablerow, tl, false);
TextView content = (TextView)row.findViewById(R.id.content);
content.setText("this is the content");
tl.addView(row);
Это позволит вам настроить макет, внешний вид, параметры макета в xml, упрощая чтение и отладку.
Для проблемы с прокруткой вы 'Вам нужно будет добавить свой TableLayout в ScrollView.Примерно так в вашем xml:
<ScrollView>
<TableLayout android:id="@+id/arcitle_content_table" />
</ScrollView>