1) Du könntest z.B. einen Webserver (IdHTTPServer) integrieren, damit kannst Du sehr einfach Parameter an den Server übergeben und Textausgaben an die Clients (IdHTTP) senden.
2) Die Software wird natürlich bei sehr vielen Zugriffen gebremst... solltest Du rechen-/zeitintensive Prozeduren verwenden, kannst Du diese ggf. in Threads auslagern um den Haupttheread zu entlasten. Die Request und Responses müssen allerdings zwingend in einem gemeinsamen Thread gehandelt werden, es sei denn, Du verwendest für jeden Client einen anderen Port

...
3) I. z.B. IdHTTP1.Get('http://DeineServerIP/Test?Parameter1=Test&Parameter2=Test2');
II. IdHTTPServer1OnCommandGet (oder so ähnlich...) -> hier musst Du "nur noch" entspr. der Parameter eine Antwort erzeugen.