Grazie del suggerimento ma purtroppo non posso applicare quella soluzione perchè, oltre alla disponibilità limitata in termini di quantità, c'e l'ho anche in termini di tempo.
Per esempio gli acquirenti possono acquistare 100 articoli ma solo fino al giorno e all'ora X, oltre la quale non è più possibile acquistare quell'articolo.
E' un pò come fossero delle aste ebay con quantità limitata, e bloccare a priori un oggetto per una settimana intera non è possibile perché è un lasso di tempo troppo grande, e siccome si prevede un grande afflusso di utenti, non posso permettermi di avere troppi prodotti bloccati contemporaneamente.

Per ora ho fatto un passo avanti. Ho impostato il processo di pagamento in modo tale che i pagamenti devono prima essere approvati dal negoziante.
La disponibilità dell'oggetto viene scalata a posteriori, ovvero quando il negoziante, dopo aver verificato che la disponibilità è sufficiente, approva il pagamento.
Se il negoziante verifica che non c'è la disponibilità, annulla il pagamento e l'acquirente non ha perso nulla.
Il problema di questo approccio è che si stimano qualcosa come 30000 utenti del sito, quindi è probabile che il numero di transazioni da controllare diventi tanto elevato da essere ingestibile.

L'ideale sarebbe avere un sistema automatico nel quale, prima di accettare il pagamento, paypal verifica l'effettiva disponibilità dell'oggetto.
Oppure, usando il blocco a priori con scadenza di mezz'ora, bisognerebbe indicare a paypal la data di scadenza del blocco in modo tale che rifiuti qualsiasi pagamento di quella transazione oltre questa data di scadenza.

Non c'è proprio nessun modo per attuare una delle due soluzioni automatiche?