PWM ist immer ein gepulstes Signal das an einer Portleitung ausgegeben wird.
In dem Beispiel wurden zwei unabhängige PWM-Signal generiert um zwei Motoren in der Geschwindigkeit steuern zu können.
An den Port muß in dem Fall natürlich noch eine Endstufe (im einfachsten Falle Transistor) angeschlossen werden.
Das PWM-Signal wird über einen Timer generiert, das meinst du vermutlich mit "Hardware Pwm".
Man könnte auch einen Interrupt erzeugen und darin einen Port ein und ausschalten. Das würdest du dann vermutlich als "Software-PWM"
bezeichnen. Im Grunde ist beides das gleiche. Die Generierung mit Timer ist nur etwas genauer und benötigt weniger Rechenleistung.
Was PWM genau ist, dazu findest du hier im Forum schon edliche Beiträge die versuchen dies zu erklären. Nimm am besten mal die Suchfunktion.

Kurze Erläuterung zu den Zeilen
Diese Beiden Zeilen schalten die entsprechend duch die Hardware vorgegebene Ports auf Ausgang um
Config Pind.4 = Output 'Linker Motor PWM
Config Pind.5 = Output 'Rechter Motor PWM
Hier wird der PWM-Modus konfiguriert (Syntax der Anweisung findest du in Bascom Helpdatei)
Dabei wird 10 Bit PWM genutzt, daher kann man später Werte von 0 bis 1023 einstellen. Oft wird auch der 8 Bit Modus benutzt, dann halt nur zwischen 0 und 255
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Ein Register das die PWM-Bitzahl festlegt
Tccr1b = Tccr1b Or &H02
Ausgang wird erst mal ganz runtergeregelt
Pwm1a = 0
Pwm1b = 0