Nothing out the box as far as I am aware. If you want to avoid some coding but fulfill the requirement you can always create a custom IValidator<T> that checks the block types. Wouldn't stop the user from dragging the block in but would stop them publishing.
Setting the ContentType to AvailableInEditMode = false almost does what you need. You could auto generate the block in certain ContentAreas but still seems a little unwieldy.