Disable Ubercart download limits accumulation
Set the download limit as Unlimited, then at the next time user click on add to cart button, then check this product is he already checkout or not (for this you can use order table). If it is already purchased by that user, then you can redirect him separate page or you can display a message about the same.