Is it possible to limit the locales for asset meta fields?
Can I just delete the unwanted entries in the content table?


No, definitely don’t do that.

If you only want to enter captions in a couple languages, fine. Just ignore the other locales.

Then from your templates you can always have Craft fetch the assets with the DE or EN content, by setting the locale param.

{% set assetLocale = (craft.locale == 'en' ? 'en' : 'de') %}

{% for asset in entry.myAssetsField.locale(assetLocale) %}
    {{ asset.caption }}
{% endfor %}