Динамическое создание компонента TTable

Решение 1
Любой компонент можно создать и без (вне) формы или любого другого дочернего компонента. Для этого в методе Create надо указать параметр nil:

FSession := TSession.Create(nil);
FDatabase := TDatabase.Create(nil);
FSession.SessionName := 'DBSession'
FDatabase.Connected := False;
FDatabase.AliasName := Database;
FDatabase.DatabaseName := USER_DATABASE;
FDatabase.SessionName  := FSession.SessionName;
FUserTBL := TTable.Create(nil);
FUserTBL.DatabaseName := FDatabase.DatabaseName;
FUserTBL.SessionName := FSession.SessionName;
FUserTBL.TableName := USERTBL;
FUserTBL.IndexName := USERSpIndex;
FUserSource := TDataSource.Create(nil);
FUserSource.DataSet := FUserTBL;
Решение 2
Можно использовать TTable, не размещая компонент на форме:

function TForm1.TotalPopulation: double;
var
  Tbl: TTable;
begin
  Result := 0.0;
  Tbl := TTable.Create(nil);
  try
    Tbl.DatabaseName := 'DBDEMOS';
    Tbl.TableName := 'COUNTRY';
    Tbl.Open;
    Tbl.First;
    while not Tbl.EOF do begin
      Result := Result + Tbl.FieldByName('Population').AsFloat;
      Tbl.Next;
    end;
    Tbl.Close;
  finally
    Tbl.Free;
  end;
end;