Man könnte ja die einzelnen Größen der benötigten Felder zusammenrechnen... aber ich kenne nicht den Overhead (Speicher) eines Datasets.
Das hängt ganz von dem verwendeten DataSet ab. Allerdings sind das auch ziemlich tiefe Interna und gegebenenfalls schwer bis überhaupt nicht zu ermitteln.
Als Richtgröße kannst du aber den Vorschlag von Himitsu aufgreifen und Summe über die Spaltengrößen mit der Anzahl der im Speicher gehaltenen Zeilen multiplizieren. Wie viele das sind, hängt halt auch vom verwendeten DataSet und seinen Einstellungen ab. Wenn z.B. eine TFDQuery in den FetchOptions Unidirectional aktiv hat, werden die abgearbeiteten Zeilen immer freigegeben. In Kombination mit einer Einschränkung der RowSetSize kann man den Speicherbedarf schon in Schranken halten.
Bei anderen Datenzugriffskomponenten kann das aber auch anders aussehen.