Hallo und 

,
genau so, wie du für die Ballbewegung eine Schleife erstellt hast, kannst du auch darum herum eine weitere Schleife erstellen, welche du mit einer Bedingung verknüpfst (bzw. zum Test einfach 
while(true)).
In welcher Ereignisfunktion steht denn der Code bisher?
Denn solange es kein Konsolenprogramm ist, sondern eine Windows-Anwendung (d.h. innerhalb einer  
Form), sollte für die Bewegung ein 
Timer benutzt werden (anstatt der 
while-Schleifen), da sonst die 
Form blockiert und Windows dann "die Anwendung reagiert nicht" anzeigt!
Und zu deiner 2. Frage: mittels 
TRect.Intersects kannst du abfragen, ob sich zwei Rechtecke (d.h. 
BoundsRect von Ball und Bouncepad) überschneiden.
PS: Außerdem solltest du einfach zwei Variablen 
BallSpeedX und 
BallSpeedY haben, so daß du nur jeweils eine einzige Zeile (für Veränderung von 
Ball.Left und 
Ball.Top) benötigst.