Sentiment Analysis with Imbalanced Dataset in LightGBM
Are there any approaches to follow to handle this type of datasets
  that are so imbalanced.?

Your dataset is almost balanced. 70/30 is close to equal. With gratient boosted trees it is possible to train on much more unbalanced data, like credit scoring, fraud detection, and medical diagnostics, where percentage of positives may be less that 1%. 
Your problem might be not in class imbalance, but in the wrong metric you use. When you calculate accuracy, you implicitly penalize your model equally for false negatives and false positives. But is it really the case? When classes are imbalanced, or just uncomparable from the business or physical point of view, other metrics, like precision, recall, or ROC AUC might be of more use than accuracy. For your problem I would recommend ROC AUC.
Maybe, what you really want is probabilistic classification. And if you want to keep it binary, play with the threshold used for the classification.

How can I further improve my model.?

Because it is analysis of text, I would suggest more accurate data cleaning. Some directions to start with:

Did you try different regimes of lemmatization/stemming?
How did you preprocess special entities, like numbers, smileys, abbreviations, company names, etc.?
Did you exploit collocations, by including bigrams or even trigrams into your model along with words?
How did you handle negation? One single "no" could change the meaning dramatically, and CountVectorizer catches that poorly.
Did you try to extract semantics from the words, e.g. match the synonyms or use word embeddins from a pretrained model like word2vec or fastText?

Maybe tree-based models is not the best choice. In my own experience, best sentiment analysis was performed by linear models like logistic regression or a shallow neural network. But you should heavily regularize them, and you should scale your features wisely, e.g. with TF-IDF.
And if your dataset is large, you can try deep learning and train a RNN on your data. LSTM is often the best model for many text-related problems.

Should I try down-sampling.?

No, you should never down-sample, unless you have too much data to process on your machine. Down-sampling creates biases in your data.
If you really really want to increase the relative importance of the minority class for your classifier, you can just reweight the observations. As far as I know, in LightGBM you can change class weights with the scale_pos_weight parameter.

Or is it the maximum possible accuracy.? How can I be sure of it.?

You can never know. But you can do an experiment: ask several humans to label your test samples, and compare them with each other. If only 90% of labels coincide, then even humans cannot relaibly classify the rest 10% of samples, so you have reached the maximum. 
And again, don't focus on accuracy too much. Maybe, for your business application it is okay if you incorrectly label some positive reviews as negative, as long as all the negative reviews are successfully identified.
I am trying to perform sentiment analysis on a dataset of 2 classes (Binary Classification). Dataset is heavily imbalanced about 70% - 30%. I am using LightGBM and Python 3.6 for making the model and predicting the output.
I think imbalance in dataset effect performance of my model. I get about 90% accuracy but it doesn't increase further even though I have performed fine-tuning of the parameters. I don't think this the maximum possible accuracy as there are others who scored better than this.
I have cleaned the dataset with Textacy and nltk. I am using CountVectorizer for encoding the text. 
I have tried up-sampling the dataset but it resulted in poor model (I haven't tuned that model) 
I have tried using the is_unbalance parameter of LightGBM, but it doesn't give me a better model.
Are there any approaches to follow to handle this type of datasets that are so imbalanced.? How can I further improve my model.? Should I try down-sampling.? Or is it the maximum possible accuracy.? How can I be sure of it.?