Allora, ti dico come lo farei io:

A livello di html creerei una tabella, alla quale assegnando diverse classi, potrei dare l'aspetto che voglio (ad esempio nella pagina che hai linkato tu la griglia non è quadrata).

Ad esempio:

classe : posto (con bordi e colore che vuoi)
classe : nullo (assegni gli stessi colore dello sfondo per renderli "invisibili".
classe : posto_venduto (assegni un colore di sfondo diverso)

Poi ad ogni posto prenotabile assegni anche un id in una forma tipo "posto23_B".

Quando costruisci la tabella al caricamento della pagina, tramite php interroghi il database ed estrai dalla tabella "postivenduti" il numero del posto venduto, ritornando all'esempio di prima, ad esempio avrai un record "23_B", al momento della creazione della tabella verifichi nel momento in cui disegni ogni posto se il numero di posto che stai per inserire è stato venduto, e in tal caso oltre ad assegnare l'id e la classe "posto" assegni anche la classe "posto_venduto" (la quale tramite css avrà background-color:#f00 !important", in modo che vada a sovrascrivere le regole assegnate alla classe "posto").

E questo vale per la composizione.

Per quanto riguarda la realizzazione della parte javascript, io non sono un fan delle cose già pronte, soprattutto se non sai metterle a posto, se hai voglia di studiare, guardati jquery, è un framework javascript che ti permette di gestire in modo semplice la selezione di elementi della pagina tramite una sintassi tipo $('#posto23_B') (per ottenere la cella del posto 23_B).

Nel tuo codice javascript una volta incluso jquery dovrai mettere una roba tipo:

$('.posto:not(.posto_venduto)').click(function() {
alert('Stai richiedendo il posto '.$(this).attr('id').replace('posto_', ''));
});

Inoltre avrai bisogno di javascript per modificare la colonna contenente un primo totale provvisorio da mostrare all'utente.

Una volta che l'utente preme sul bottone conferma (che sarà un input submit di un form contenente il numero dei posti messi nel "carrello") una pagina php si prenderà cura di salvare questi posti nella tabella posti_venduti, che potrebbe avere i seguenti campi:

id: valore numerico autoincrementale
id_utente: qui ci metti il legame con la tabella degli utenti registrati (immagino che tu voglia registrare gli utenti)
numero_posto: il nome dice tutto
stato_pagamento : 0 o 1 a seconda se uno ha pagato
data_acquisto: ci metti il valore di time() nel momento in cui salvi l'acquisto.
data_spettacolo: la data per cui sta prenotando

Questa è la tabella che interrogherai per sapere se i posti sono liberi oppure no.

A questo punto arriva la parte della transazione con paypal.
Paypal permette di passare il nome di una pagina php da richiamare ad avvenuto pagamento, in quella pagina riceverai diversi valori, tra cui un id di transazione (che hai generato tu per comporre la richiesta a paypal) e lo stato.
Tramite questo id dovrai essere in grado di recuperare i posti che l'utente sta pagando e se il pagamento è andato a buon fine cambiare lo stato di pagamento, in modo da fissare l'acquisto.

Questa è un'analisi grezza di quello che devi fare, purtroppo quello che ti ho descritto non è proprio una cosa banale, e non credo che tu te la possa cavare con un po' di copincolla, ma ti auguro comunque di farcela :-)